В качестве части задания я пытаюсь получить значение из JTextField. То, что я пытаюсь получить, - это процентная ставка для учетной записи. Он должен быть больше нуля &. Пользователю следует попросить, чтобы он дал что-то большее, чем ноль. Кроме того, если ввод является чем-то другим, кроме числа, как строка текста, также должна быть ошибка, и он должен снова спросить пользователя.Извлечение значения из GUI
Я сделал часть, но у меня проблемы с выполнением задачи.
Ниже приводится метод, который вызывает графический интерфейс:
//getting the interest rate
protected void getInterest() {
if(this instanceof flexibleAccount) {
}
else {
GetInterest getInterest = new GetInterest();
getInterest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getInterest.setSize(350, 100);
getInterest.setVisible(true);
}//end else
}//end getInterest
Он идет сюда:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.util.InputMismatchException;
public class GetInterest extends JFrame {
private JTextField textField;
private double interestRate;
public GetInterest() {
super("Banking Application");
setLayout(new FlowLayout());
textField = new JTextField("Enter interest rate",10);
add(textField);
TextFieldHandler handler = new TextFieldHandler();
textField.addActionListener(handler);
}//end GetInterest
private class TextFieldHandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
try {
String string;
string = textField.getText();
//string = String.format("%s", event.getActionCommand());
interestRate = Double.parseDouble(string);
if(interestRate <= 0)
JOptionPane.showMessageDialog(null, "Interest rate should be greater than zero");
else if(interestRate > 0) {
JOptionPane.showMessageDialog(null, interestRate);
}
//else
//throw new InputMismatchException;
}
catch(InputMismatchException exception) {
System.out.println(accountTest.getStackTrace(exception));
}
}//end actionPerformed
}//end TextFieldHandler
}//end GetInterest
Как вы можете видеть, я получаю значение и пользователю предлагается еще раз, если он/она вводит нечто меньшее или равное нулю.
Но следующие отсутствуют:
- вернуть его к методу getInterest,
- окно исчезает после завершения
- отображается ошибка, если пользователь вводит текст.
Как я могу это достичь.
1) Для более эффективной помощи, отправьте сообщение [SSCCE] (http://sscce.org/). 2) См. [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/a/9554657/418556). Фактически, симптомы этой проблемы предполагают, что модальный диалог - это именно то, что необходимо. –