用户如何在JPanel的构造函数中键入参数?

时间:2012-11-08 02:54:47

标签: java swing joptionpane

我正在构建简单的Swing Java应用程序,它包含JFrame和JPanel。我的JPanel的构造函数需要传递1个参数。我想让我的用户输入这个变量。所以现在我的应用程序刚刚启动,我需要在代码中传递此参数。我的目标是:在我的JPanel(也许是JFrame)启动之前,出现一个小窗口,询问“选择一个数字”并选择数字从1到10的列表,当用户选择一个并按下按钮时,该值应该通过进入myJPanel的构造函数。

如何实现?

JFrame代码:

public class MainWindow extends JFrame {

/**
 * Launch the application.
 */
 public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                MainWindow frame = new MainWindow();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
} 

/**
 * Create the frame.
 */
public MainWindow() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 542, 455);
    myJPanel panel1 = new JPanel(4); // HERE
    add(panel1);

}

}

修改

还有更优雅的方式吗? :]我不想转换为字符串,然后转换为int。

并且,如果用户单击“取消”按钮,如何关闭整个应用程序?

    Object[] possibleSizes = { 3, 4, 5, 6, 7 };
    Object selectedValue = JOptionPane.showInputDialog(null,
    "Choose a number", "Uwaga!",
    JOptionPane.INFORMATION_MESSAGE, null,
    possibleSizes, possibleSizes[0]);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 542, 455);
    MyJPanel panel1 = new MyJPanel(Integer.parseInt(selectedValue.toString()); // HERE
    add(panel1); 1);

1 个答案:

答案 0 :(得分:3)

您可能正在寻找类似JOptionPane.showInputDialog的内容。

这很简单,但允许您从用户那里收集信息,该信息以String

的形式返回

有关详细信息,请查看How to make DialogsJOptionPane

使用JOptionPane可以获得非常复杂的结果,请查看accept only a single digit in java示例