2014-10-01 3 views
0

Я создал класс, который расширяет JFrameКак установить основную раму в детской JDialog

public class MyFrame extends JFrame 
{ 
    public MyFrame() 
    { 
      JPanel panel = new JPanel(); 
       JPanel panel2 = new JPanel(); 
        JDialog myDialog = new JDialog(MyFrame, Dialog.ModalityType.DOCUMENT_MODAL);       
        //How can I set my MyFrame as Parent for JDialog??? 
       panel.add(panel2); 
      add(panel); 
    } 
} 

В коде выше я хочу, чтобы установить в качестве родителя MyFrame JDialog в. Как я могу это сделать? Я попытался поставить так, как я показал в своем коде, но это дает мне ошибку.

Как установить MyFrame в качестве родителя для JDialog ???

ответ

1

Вы используете ключевое слово.

JDialog myDialog = new JDialog(this, Dialog.ModalityType.DOCUMENT_MODAL);  

Больше информации здесь: http://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html

Side Примечание: Вы не должны распространяться JFrame без причины. Вы должны одобрить композицию над наследованием. Больше информации here и here.

+0

установка ** это ** работает, но вы хотите рассказать мне, почему ** это ** относится к MyFrame не JPanel, пока этот JDialog создан внутри JPanel? –

+0

@ColdCoder Пожалуйста, ознакомьтесь с приведенными мной ссылками. Это ключевое слово относится к охватывающему экземпляру, который является экземпляром MyFrame. –

+0

Спасибо за ваш ответ и спасибо за ссылки. Это действительно полезно. благодаря –

Смежные вопросы