Обработка нажатия кнопки - 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();
}
});
}
}