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