Слушатель и JLabel - Java
Формулировка задачи:
Почему не работает обработчик событий на кнопке - не видит объект write. и как выводит ответ на JLabel ?
import javax.swing.*; import java.awt.*; import java.awt.event.*; class GeometryFrame extends JFrame { GeometryFrame() { int w=500, h=400; setTitle("Геометрия"); setBounds(400,200,w,h); setVisible(true); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); CPanel panel = new CPanel(w,h); add(panel); } } class CPanel extends JPanel { public CPanel(int W, int H) { setLayout(null); setBounds(0,0,W,H); JTextField TF = new JTextField(); TF.setHorizontalAlignment(JTextField.LEFT); TF.setBounds(10,20,100,25); JTextField TF1 = new JTextField(); TF1.setHorizontalAlignment(JTextField.LEFT); TF1.setBounds(10,60,100,25); JLabel answer = new JLabel("",1); add(TF); add(TF1); add(answer); // ActionListener actionListener = new TestActionListener(); JButton btn = new JButton("Сложить"); btn.setBounds(10,100,100,25); btn.addActionListener(TestActionListener); add(btn); } } public class TestActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { int t, t1, result; t = Integer.parseInt(TF.getText()); t1 = Integer.parseInt(TF1.getText()); result = t + t1; write.setText("Ответ:" + result); } } class Geometry{ public static void main(String[] args) { new GeometryFrame(); } }
Решение задачи: «Слушатель и JLabel»
textual
Листинг программы
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SpringLayout; public class GeometryRevoked extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L; public static void main(String[] args){ new GeometryRevoked(); } private JTextField t1, t2; private JLabel result; private JButton button; GeometryRevoked(){ initFrame(); initComponents(); setVisible(true); } private void initComponents(){ SpringLayout layout = new SpringLayout(); JPanel panel = new JPanel(layout); t1 = new JTextField(20); t2 = new JTextField(20); button = new JButton("Button"); result = new JLabel(""); layout.putConstraint(SpringLayout.WEST, t1, 5, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.WEST, t2, 5, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.NORTH, t2, 25, SpringLayout.NORTH, this); layout.putConstraint(SpringLayout.WEST, result, 5, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.NORTH, result, 50, SpringLayout.NORTH, this); layout.putConstraint(SpringLayout.WEST, button, 5, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.NORTH, button, 75, SpringLayout.NORTH, this); panel.add(t1); panel.add(t2); panel.add(result); panel.add(button); button.addActionListener(this); add(panel); } private void initFrame(){ setSize(300, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setResizable(false); } @Override public void actionPerformed(ActionEvent e){ int value = Integer.parseInt(t1.getText()) + Integer.parseInt(t2.getText()); result.setText(String.valueOf(value)); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д