【问题标题】:Getting values from JOptionPane and using them to create a new instance of a class从 JOptionPane 获取值并使用它们创建类的新实例
【发布时间】:2015-01-25 23:25:07
【问题描述】:

我想从 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

【问题讨论】:

    标签: java arrays swing object joptionpane


    【解决方案1】:

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

    需要注意的一点:showOptionDialog() 的第四个参数是选项类型,所以它应该是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) {
    }
    

    【讨论】:

    • 是的,谢谢这个工作:) 你知道如何将这些值作为参数传递以创建另一个类的新实例吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    相关资源
    最近更新 更多