java - 从 JOptionPane 获取值并使用它们创建类的新实例

标签 java arrays swing object joptionpane

我想从 JOptionPane 检索用户值,然后我想使用这些值作为参数来创建另一个类的新实例。 这是我的代码:

protected void addCar()
{
   String[] size = {"Large","Small"};
   String[] value = {"Valuable","Not Valuable"};

    JTextField regNum = new JTextField();
    JList carSize = new JList(size);
    JList carValue = new JList(value);

    carValue.getSelectedValue();
    System.out.println(carSize.getSelectedValue());
    Object[] fields = 
    {
        "Registration Number", regNum,
        "Car Size", carSize,
        "Car Value", carValue
    };

    JOptionPane.showOptionDialog(rootPane, fields, "Wish To Continue?", 
            JOptionPane.DEFAULT_OPTION, JOptionPane.YES_NO_OPTION, 
            null, null, regNum);


}//end addCar

最佳答案

在返回后,您可以简单地从传递给 showOptionDialog() 的组件中获取用户输入。

需要注意的是:showOptionDialog()的第4个参数是选项类型,因此它应该是 YES_NO_OPTION 而不是 DEFAULT_OPTION。第 5 个参数是您可以传递 INFORMATION_MESSAGE 的消息类型。其他参数与您的情况无关。

请参阅此示例:

// Your code here to create components

JOptionPane.showOptionDialog(null, fields, "Wish To Continue?",
   JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null);

System.out.println(fields[0] + ": " + regNum.getText());
System.out.println(fields[2] + ": " + carSize.getSelectedValue());
System.out.println(fields[4] + ": " + carValue.getSelectedValue());

输出:

Registration Number: 1234
Car Size: Large
Car Value: Not Valuable

如果您想使用这些值来创建另一个类的实例,您可以像这样简单地传递它们:

OtherClass oc = new OtherClass(regNum.getText(), carSize.getSelectedValue(),
        carValue.getSelectedValue());

这假设您的OtherClass具有如下所示的构造函数:

public OtherClass(String regNum, String carSize, String carValue) {
}

关于java - 从 JOptionPane 获取值并使用它们创建类的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169392/

相关文章:

java - 无法从android接收php中的post参数?

javascript - 实例化一个没有 'new' 的类

javascript - 将数组中的 json 对象字符串化,等于日期

php - 如何在 PHP 中访问嵌套标准对象数组中的数据

java - 在 JTable 中实现选择监听器时出现问题

java - 连接错误和 java.long.nullpointer 错误

java - 是否可以使用for循环将字符串数组插入jtable

java - 单个字母的字符串不匹配

java - 如何检查视频播放器是否在appium中启动

java - 从文本文件读取到 JTextfield