Обработка нажатия кнопки - Java (240964)

Узнай цену своей работы

Формулировка задачи:

Добрый вечер! Пытаюсь сделать простой калькулятор на Java c использованием компонентов Swing. При запуске кода выдает ошибку Error105, 1) java: class, interface, or enum expected. Я не очень понимаю в чем проблема. Кроме того в обработке нажатия не видит TextBox, значения которых я пытаюсь обработать. Что не так?
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ApplicationKate implements ActionListener {
    JLabel jlab;
 
    ApplicationKate() {
        //название формы
        JFrame jfrm = new JFrame("Простой калькулятор");
        jfrm.setSize(450, 200);
//        GridBagLayout grid = new GridBagLayout();
        GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets(10, 5, 5, 5), 5, 5);
        jfrm.setLayout(new GridBagLayout());
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //текст на форме
        JLabel jlab = new JLabel("Введите числа");
        jfrm.add(jlab, gbc);
 
        //textboxs
        JTextField par1 = new JTextField();
        gbc.gridx = 1;
        jfrm.add(par1, gbc);
 
        JTextField par2 = new JTextField();
        gbc.gridx = 2;
        jfrm.add(par2, gbc);
 
        JTextField result = new JTextField();
        gbc.gridx = 1;
        jfrm.add(result, gbc);
 
        //labels на форме
        JLabel jlab1 = new JLabel("Результат");
        gbc.gridy = 1;
        gbc.gridx = 0;
        jfrm.add(jlab1, gbc);
 
        JLabel jlab2 = new JLabel("Действия");
        gbc.gridy = 2;
        gbc.gridx = 0;
        gbc.gridwidth = 4;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.CENTER;
        jfrm.add(jlab2, gbc);
 
        //кнопки
        gbc.gridy = 3;
        gbc.gridwidth = 1;
        gbc.fill = GridBagConstraints.BOTH;
 
        JButton jbtnPls = new JButton("Сложить");
        gbc.gridx = 0;
        jfrm.add(jbtnPls, gbc);
        jbtnPls.addActionListener(this);
 
        JButton jbtnMns = new JButton("Вычесть");
        gbc.gridx = 1;
        jfrm.add(jbtnMns, gbc);
        jbtnMns.addActionListener(this);
 
        JButton jbtnYmn = new JButton("Умножить");
        gbc.gridx = 2;
        jfrm.add(jbtnYmn, gbc);
        jbtnYmn.addActionListener(this);
 
        JButton jbtnRaz = new JButton("Разделить");
        gbc.gridx = 3;
        jfrm.add(jbtnRaz, gbc);
        jbtnRaz.addActionListener(this);
        jfrm.setVisible(true);
    }
 
    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new ApplicationKate();
            }
        });
    }
 
    private void jbtnPls_Click(object sender, EventArgs e) {
        result.Text = ((Convert.ToInt(par1.Text)) + (Convert.ToInt(par2.Text))).ToString();
    }
 
    private void jbtnMns_Click(object sender, EventArgs e) {
        result.Text = ((Convert.ToInt(par1.Text)) - (Convert.ToInt(par2.Text))).ToString();
    }
 
    private void jbtnYmn_Click(object sender, EventArgs e) {
        result.Text = ((Convert.ToInt(par1.Text)) * (Convert.ToInt(par2.Text))).ToString();
    }
 
    private void jbtnRaz_Click(object sender, EventArgs e) {
        result.Text = ((Convert.ToInt(par1.Text)) / (Convert.ToInt(par2.Text))).ToString();
    }
 
}
}

Решение задачи: «Обработка нажатия кнопки»

textual
Листинг программы
package sample;
 
import javax.swing.*;
import java.awt.*;
 
public class ApplicationKate {
 
    ApplicationKate() {
        //название формы
        JFrame jfrm = new JFrame("Простой калькулятор");
        jfrm.setSize(450, 200);
//        GridBagLayout grid = new GridBagLayout();
        GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets(10, 5, 5, 5), 5, 5);
        jfrm.setLayout(new GridBagLayout());
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
 
        //текст на форме
        JLabel jlab = new JLabel("Введите числа");
        jfrm.add(jlab, gbc);
 
        //textboxs
        JTextField par1 = new JTextField();
        gbc.gridx = 1;
        jfrm.add(par1, gbc);
 
        JTextField par2 = new JTextField();
        gbc.gridx = 2;
        jfrm.add(par2, gbc);
 
        //labels на форме
        JLabel jlab1 = new JLabel("Результат");
        gbc.gridy = 1;
        gbc.gridx = 0;
        jfrm.add(jlab1, gbc);
 
        JTextField result = new JTextField();
        gbc.gridx = 1;
        jfrm.add(result, gbc);
 
        JLabel jlab2 = new JLabel("Действия");
        gbc.gridy = 2;
        gbc.gridx = 0;
        gbc.gridwidth = 4;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.CENTER;
        jfrm.add(jlab2, gbc);
 
        //кнопки
        gbc.gridy = 3;
        gbc.gridwidth = 1;
        gbc.fill = GridBagConstraints.BOTH;
 
        JButton jbtnPls = new JButton("Сложить");
        gbc.gridx = 0;
        jfrm.add(jbtnPls, gbc);
        jbtnPls.addActionListener(e ->
                result.setText(Integer.parseInt(par1.getText()) + Integer.parseInt(par2.getText()) + ""));
 
        JButton jbtnMns = new JButton("Вычесть");
        gbc.gridx = 1;
        jfrm.add(jbtnMns, gbc);
        jbtnMns.addActionListener(e ->
                result.setText(Integer.parseInt(par1.getText()) - Integer.parseInt(par2.getText()) + ""));
 
        JButton jbtnYmn = new JButton("Умножить");
        gbc.gridx = 2;
        jfrm.add(jbtnYmn, gbc);
        jbtnYmn.addActionListener(e ->
                result.setText(Integer.parseInt(par1.getText()) * Integer.parseInt(par2.getText()) + ""));
 
        JButton jbtnRaz = new JButton("Разделить");
        gbc.gridx = 3;
        jfrm.add(jbtnRaz, gbc);
        jbtnRaz.addActionListener(e ->
                result.setText(Integer.parseInt(par1.getText()) / Integer.parseInt(par2.getText()) + ""));
 
        jfrm.setVisible(true);
    }
 
    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new ApplicationKate();
            }
        });
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы