Получение значений из JOptionPane и использование их для создания нового экземпляра класса

1

Я хочу получить пользовательские значения из 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
Теги:
object
arrays
swing
joptionpane

1 ответ

0

Вы можете просто получить пользовательский ввод от компонентов, которые вы передали showOptionDialog() после его возврата.

Одно замечание: 4-й параметр 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) {
}
  • 0
    Да, спасибо, это работает :) Знаете ли вы, как передать эти значения в качестве параметров, чтобы создать новый экземпляр другого класса?
  • 0
    @TonyQuig Да, отредактировал мой ответ.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню