2013-06-09 4 views
1

я добавил Свинг форму JDialog к моему проекту, как на этой картинке:Получить значение из JDialog родителю JFrame

enter image description here

и теперь я хочу, чтобы получить значение из этого JTextField к родительскому JFrame когда я закрываю этот JDialog, я гугл об этом, и я нашел это:

Object obj=sasirMdp.showDialog(); 

но компилятор говорит мне, что нет никакого способа по имени showDialog в моей JDialog.

и когда я добавил этот метод к классу JDialog:

ReturnValue showDialog() { 
    setVisible(true); 
    return result; 
} 

copmiler говорит мне, если я хочу, чтобы создать класс ReturnValue.

Пожалуйста, если кто-то знает, как получить это значение от JDialog, я буду благодарен.

+0

возможно дубликат http://stackoverflow.com/questions/4089311/how-can-i-return-a-value-from-a-jdialog-box-to-the-parent-jframe –

+0

@ Heuster да, я прочитал об этом сообщении, это не помогло мне принять ответ, чтобы прочитать руководство, и я не мог получить то, что я хочу, когда прочитаю его. –

+1

Хорошо, не могли бы вы добавить код вашего JDialog и как вы вызывать его? Тогда проще указать, как применить этот ответ к вашему проекту. –

ответ

2

Мне кажется, что вы смешиваете JDialog и JOptionPane. Вы должны прочитать How to Make Dialogs. Это отличное введение в диалоги с качелями.

1

Вы хотите что-то вроде этого?

public class TestJDialog extends JFrame implements ActionListener 
{ 
private JLabel l; 

public TestJDialog(String title) 
{ 
    super(title); 
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); 
    this.setLayout(new GridLayout(0,1)); 
    JButton b = new JButton("Input Dialog"); 
    b.addActionListener(this); 
    this.add(b); 

    l = new JLabel(); 
    this.add(l); 

    setSize(300, 100); 
    setVisible(true); 
} 

public void actionPerformed(ActionEvent evt) 
{ 
    String s = evt.getActionCommand(); 
    String input = JOptionPane.showInputDialog(this, 
               "Saisissez votre mot de passé:", 
               s, 
               JOptionPane.QUESTION_MESSAGE); 
    l.setText("Mot passé: " + input); 
} 

public static void main(String[] args) 
{ 
    new TestJDialog("Example"); 
} 
} 
Смежные вопросы