Ошибка в программе на JFrame
Она принимает через три JTextField три числа и определяет по нажатию на кнопку(JButton) максимальное из них, записывая ее в четвертую JTextField.
Подскажите, в чем может быть ошибка.
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setLayout(new FlowLayout());
final JTextField firstField = new JTextField(" ");
final JTextField secondField = new JTextField(" ");
final JTextField thirdField = new JTextField(" ");
final JButton button = new JButton("Выполнить");
final JTextField resultField = new JTextField(" ");
button.addActionListener(new ActionListener () {
@Override
public void actionPerformed(ActionEvent e) {
float x = Float.parseFloat(firstField.getText());
float y = Float.parseFloat(secondField.getText());
float z = Float.parseFloat(thirdField.getText());
resultField.setText(Math.max(Math.max(x,y),z));
}
});
frame.add(firstField);
frame.add(secondField);
frame.add(thirdField);
frame.add(button);
frame.add(resultField);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 100);
frame.setLocation(500, 500);
frame.setTitle("Задание 2");
frame.setVisible(true);
}
}
Ответы (1 шт):
Автор решения: Miron
→ Ссылка
Вы используете метод класса JTextField со следующей сигнатурой:
void setText(float f);
Метода с такой сигнатурой в классе JTextField не существует. Существует же метод с этой сигнатурой:
void setText(String s);
Для того, чтобы все заработало, вам нужно добавить перевод из float в String:
resultField.setText(Float.toString(Math.max(Math.max(x,y),z)));