Я хочу получить пользовательские значения из 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()
после его возврата.
Одно замечание: 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) {
}