我正在构建简单的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);
答案 0 :(得分:3)
您可能正在寻找类似JOptionPane.showInputDialog
的内容。
这很简单,但允许您从用户那里收集信息,该信息以String
有关详细信息,请查看How to make Dialogs,JOptionPane
使用JOptionPane
可以获得非常复杂的结果,请查看accept only a single digit in java示例