2014-11-30 6 views
1

단추를 클릭 할 때 JDialog를 표시하려고하지만이를 클릭하면 대화 상자가 표시되지만 볼 수는 없습니다. 내 대화의 다른 구성 요소는 내가 네 내 대화에 textfied 및JDialog에서 JTextAreas가 보이지 않습니다. setVisible 함수가 추가되었지만 여전히 작동하지 않습니다.

class Class2_3 { 
public static void main(String[]args){ 

    MyFrame myFrame=new MyFrame(); 
    myFrame.setVisible(true); 
} 
} 

class MyDialog extends JDialog{ 

Container container =this.getContentPane(); 
JPanel jPanel=new JPanel(); 

public MyDialog(Component relativeTo) 
{ 
    super(); 
    this.IniDialog(); 

    this.setLocationRelativeTo(relativeTo); 
    this.setSize(300,300); 
    //this.setDefaultCloseOperation(EXIT_ON_CLOSE); 

    setModal(true); 
    //this.setVisible(true); 
} 


public void IniDialog() 
{ 
    JTextField textField1=new JTextField(10); 
    textField1.setMaximumSize(textField1.getPreferredSize()); 
    Box hBox1=Box.createHorizontalBox(); 

    JTextField textField2=new JTextField(10); 
    textField2.setMaximumSize(textField2.getPreferredSize()); 
    Box hBox2=Box.createHorizontalBox(); 

    JTextField textField3=new JTextField(10); 
    textField3.setMaximumSize(textField3.getPreferredSize()); 
    Box hBox3=Box.createHorizontalBox(); 

    JTextField textField4=new JTextField(10); 
    textField4.setMaximumSize(textField4.getPreferredSize()); 
    Box hBox4=Box.createHorizontalBox(); 

    Box vBox=Box.createVerticalBox(); 
    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(hBox1); 
    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(hBox2); 
    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(hBox3); 
    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(hBox4); 
    vBox.add(Box.createVerticalStrut(10)); 

    jPanel.add(vBox); 
    container.add(jPanel); 
} 
} 

class MyFrame extends JFrame implements ActionListener{ 

MyDialog dialog; 
//Container contentPane=this.getContentPane(); 

public MyFrame() 
{ 
    //initialization 
    this.setTitle("Spike"); 
    this.setSize(400, 300); 
    this.setDefaultCloseOperation(EXIT_ON_CLOSE); 

    //Component adding 
    JButton openButton=new JButton("Open"); 
    //openButton.setSize(50, 50); 
    openButton.addActionListener(this); 
    //contentPane.add(openButton); 

    JLabel label1=new JLabel("编号:"); 
    JTextField textField1=new JTextField(10); 
    textField1.setMaximumSize(textField1.getPreferredSize()); 
    Box hBox1=Box.createHorizontalBox(); 
    hBox1.add(label1); 
    hBox1.add(textField1); 

    JLabel label2=new JLabel("名称:"); 
    JTextField textField2=new JTextField(10); 
    textField2.setMaximumSize(textField2.getPreferredSize()); 
    Box hBox2=Box.createHorizontalBox(); 
    hBox2.add(label2);hBox2.add(textField2); 

    JLabel label3=new JLabel("单价:"); 
    JTextField textField3=new JTextField(10); 
    textField3.setMaximumSize(textField3.getPreferredSize()); 
    Box hBox3=Box.createHorizontalBox(); 
    hBox3.add(label3);hBox3.add(textField3); 

    JLabel label4=new JLabel("数量:"); 
    JTextField textField4=new JTextField(10); 
    textField4.setMaximumSize(textField4.getPreferredSize()); 
    Box hBox4=Box.createHorizontalBox(); 
    hBox4.add(label4);hBox4.add(textField4); 

    Box vBox=Box.createVerticalBox(); 

    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(hBox1); 
    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(hBox2); 
    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(hBox3); 
    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(hBox4); 
    vBox.add(Box.createVerticalStrut(10)); 
    vBox.add(openButton); 

    this.add(vBox,BorderLayout.CENTER); 
} 

@Override 
public void actionPerformed(ActionEvent e) { 
    if(dialog==null){ 
     //dialog=(MyDialog) new JDialog(this,true); 
     dialog=new MyDialog(this); 
     dialog.setVisible(true); 
    } 
} 
} 
+0

하나의 상자에 텍스트 필드를 추가하는 것을 잊었다 이미로 setVisible 기능을 추가 추가 한 이후 소스 코드에서 공백으로 된 빈 줄이 모두 필요합니다. '{'또는'}'앞의 공백 행은 일반적으로 중복됩니다. –

답변

3

당신은 IniDialog() :

hBox1.add(textField1); 
hBox2.add(textField2); 
hBox3.add(textField3); 
hBox4.add(textField4); 
+0

고마워요! 나는 실수를 찾는다. :) – Spikerman