Обработка нажатия кнопки - 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(); } }); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д