Почему не работает кнопка? Подскажите пожалуйста почему не срабатывает SumButtonListener. Возникает ошибка формата данных. Наверное что то с парсингом натворил. перечитал кучу интернет страничек но так и не нашёл решения. Если знаете где можно посмотреть киньте ссылку пожалуйста. public class CalculatorTest {

public static JPanel panelGeneral;
public static JLabel numL1, numL2, numL3;
public static JTextField numEdit1, numEdit2, numEdit3;
public static JButton buttonSum, buttonSub, buttonMulti, buttonDiv, buttonEqually;
public static JPanel panel1, panel2, panel3, panel4;
public static void main(String[] args) {


JFrame frame = new JFrame("Калькулятор");
frame.setSize(250, 360);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);

panelGeneral = new JPanel();
frame.add(panelGeneral);
BoxLayout bxLayout = new BoxLayout(panelGeneral, BoxLayout.PAGE_AXIS);
panelGeneral.setLayout(bxLayout);

numL1 = new JLabel("Введите первое число");
numL2 = new JLabel("Введите второе число");
numL3 = new JLabel("Результат");

numEdit1 = new JTextField(20);
numEdit2 = new JTextField(20);
numEdit3 = new JTextField(5);

buttonSum = new JButton("+");
buttonSum.setPreferredSize(new Dimension(50, 50));

buttonSub = new JButton("-");
buttonSub.setPreferredSize(new Dimension(50, 50));

buttonMulti = new JButton("x");
buttonMulti.setPreferredSize(new Dimension(50, 50));

buttonDiv = new JButton(":");
buttonDiv.setPreferredSize(new Dimension(50, 50));

buttonEqually = new JButton("=");
buttonEqually.setPreferredSize(new Dimension(80, 50));

panel1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
panel1.setPreferredSize(new Dimension(250, 60));
panel1.add(numL1);
panel1.add(numEdit1);
panel1.add(numL2);
panel1.add(numEdit2);
// panel1.setBackground(Color.red);

panel2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
panel2.setPreferredSize(new Dimension(250, 20));
panel2.add(numL3);
panel2.add(numEdit3);
// panel2.setBackground(Color.blue);

panel3 = new JPanel(new FlowLayout(FlowLayout.CENTER));
panel3.setPreferredSize(new Dimension(250, 20));
panel3.add(buttonSum);
panel3.add(buttonSub);
panel3.add(buttonMulti);
panel3.add(buttonDiv);
// panel3.setBackground(Color.yellow);

panel4 = new JPanel(new FlowLayout(FlowLayout.CENTER));
panel4.setPreferredSize(new Dimension(250, 20));
panel4.add(buttonEqually);
// panel4.setBackground(Color.cyan);


panelGeneral.add(panel1);
panelGeneral.add(panel2);
panelGeneral.add(panel3);
panelGeneral.add(panel4);

buttonEqually.addActionListener(new ButtonListener());
buttonSum.addActionListener(new SumButtonListener());


/*buttonEqually.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showConfirmDialog(null, "Всем привет");
}
});*/



}

public static class ButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent event) {
JOptionPane.showMessageDialog(null, "Это кнопка сработала");
}

}

public static class SumButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
int pole1 = Integer.parseInt(numEdit1.toString());
int pole2 = Integer.parseInt(numEdit2.toString());

Integer sumPole = pole1 + pole2;
numEdit3.setText(sumPole.toString());
}

}


}

21 Авг 2019 в 07:08
203 +1
0
Ответы
1

Проблема в вашем коде заключается в том, что вы использовали метод toString() для получения значений из текстовых полей numEdit1 и numEdit2, а должны были использовать метод getText(). Метод toString() возвращает строковое представление объекта, а не его текстовое содержимое.

Исправьте следующие строки в методе SumButtonListener:

int pole1 = Integer.parseInt(numEdit1.getText());
int pole2 = Integer.parseInt(numEdit2.getText());

После этого ваш код должен корректно парсить данные из текстовых полей и выполнять сложение чисел при нажатии на кнопку "+".

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир