1

我正在构建简单的 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);
4

1 回答 1

3

您可能正在寻找类似JOptionPane.showInputDialog.

这非常简单,但允许您从用户那里收集信息,这些信息作为String

有关更多信息,请查看如何制作对话框JOptionPane

您可以使用 获得非常复杂的结果JOptionPane,请查看仅接受 java 中的单个数字作为示例

于 2012-11-08T03:09:29.223 回答