@Axeles
Нечего тут пока писать

Почему не работает кнопка?

Подскажите пожалуйста почему не срабатывает 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());
        }
          
    }
      
     
}
  • Вопрос задан
  • 2393 просмотра
Решения вопроса 1
opium
@opium
Просто люблю качественно работать
вместо toString используйте getText
int pole1 = Integer.parseInt(numEdit1.getText());
int pole2 = Integer.parseInt(numEdit2.getText());
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы