如何从另一个类激活JOptionPane?

时间:2012-03-14 10:55:51

标签: java swing jdialog joptionpane

我有一个主要的类,我想要激活一个主GUI,并从一个带有JOptionPane的新类中获取值,如下面的代码所示。由于我已经打开了一个主GUI窗口,我应该如何以及在哪里激活/调用下面的类,最后,如何从JOptionPane中获取值?帮助是精确的!谢谢!

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class OptionPaneTest {

    JPanel myPanel = new JPanel();
    JTextField field1 = new JTextField(10);
    JTextField field2 = new JTextField(10);
    myPanel.add(field1);
    myPanel.add(field2);
    JOptionPane.showMessageDialog(null, myPanel);

}

编辑:

InputNewPerson nyPerson = new InputNewPerson();
JOptionPane.showMessageDialog(null, nyPerson);
String test = nyPerson.inputName.getText();

2 个答案:

答案 0 :(得分:2)

JOPtionPane提供了一些可以使用的preset dialog types。但是,当您尝试执行某些不适合其中一种类型的模型时,最好通过创建JDialog子类来创建自己的对话框。这样做可以让您完全控制控件的布局方式以及根据需要响应按钮单击的功能。您需要为“确定”按钮添加ActionListener。然后,在该回调中,您可以从文本字段中提取值。

创建自定义对话框的过程应与为GUI创建主窗口的过程非常相似。除了扩展JFrame之外,您应该扩展JDialog。这是一个非常基本的example。在示例中,ActionListener只关闭对话框。您需要添加更多代码,从文本字段中提取值,并将它们提供给其余代码中的所需位置。

答案 1 :(得分:2)

我想看看你的问题,你需要这样的东西。我做了一个小JDialog,您将在其中输入UserNameAnswer,然后将其传递到原始GUI以显示在相应字段中,同时按{ {1}}。

尝试使用此代码并询问可能出现的任何问题:

SUBMIT JButton