Почему не работает кнопка? Подскажите пожалуйста почему не срабатывает 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));
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());
Проблема в вашем коде заключается в том, что вы использовали метод toString() для получения значений из текстовых полей numEdit1 и numEdit2, а должны были использовать метод getText(). Метод toString() возвращает строковое представление объекта, а не его текстовое содержимое.
Исправьте следующие строки в методе SumButtonListener:
int pole1 = Integer.parseInt(numEdit1.getText()); int pole2 = Integer.parseInt(numEdit2.getText());
После этого ваш код должен корректно парсить данные из текстовых полей и выполнять сложение чисел при нажатии на кнопку "+".
Проблема в вашем коде заключается в том, что вы использовали метод toString() для получения значений из текстовых полей numEdit1 и numEdit2, а должны были использовать метод getText(). Метод toString() возвращает строковое представление объекта, а не его текстовое содержимое.
Исправьте следующие строки в методе SumButtonListener:
int pole1 = Integer.parseInt(numEdit1.getText());int pole2 = Integer.parseInt(numEdit2.getText());
После этого ваш код должен корректно парсить данные из текстовых полей и выполнять сложение чисел при нажатии на кнопку "+".