java - 用户如何将参数键入 JPanel 的构造函数?

标签 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);

最佳答案

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

这非常简单,但可以让您从用户那里收集信息,这些信息以 String

的形式返回

有关更多信息,请查看 How to make Dialogs , JOptionPane

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

关于java - 用户如何将参数键入 JPanel 的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13281723/

相关文章:

java - import.io 不加载任何网页

java - 使用 JAXB 将 XML 解析为不同的数据结构

java - 为什么我不能在我的 JFrame 上使用 "draw"?

java - 如何不混淆 0 和取消按钮 JoptionPane

java - HashMap#replace 的复杂度是多少?

java - 访问List时并发修改异常如何处理

Java,正确使用等待和通知来暂停另一个线程的线程执行

Java AWT旋转球

java - 停止 JOptionPane 上的堆栈跟踪

java - 不将值存储到变量