Слушатель и JLabel - Java

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

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

Почему не работает обработчик событий на кнопке - не видит объект write. и как выводит ответ на JLabel ?
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. class GeometryFrame extends JFrame {
  5. GeometryFrame() {
  6. int w=500, h=400;
  7. setTitle("Геометрия");
  8. setBounds(400,200,w,h);
  9. setVisible(true);
  10. setResizable(false);
  11. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  12. CPanel panel = new CPanel(w,h);
  13. add(panel);
  14. }
  15. }
  16. class CPanel extends JPanel {
  17. public CPanel(int W, int H) {
  18. setLayout(null);
  19. setBounds(0,0,W,H);
  20. JTextField TF = new JTextField();
  21. TF.setHorizontalAlignment(JTextField.LEFT);
  22. TF.setBounds(10,20,100,25);
  23. JTextField TF1 = new JTextField();
  24. TF1.setHorizontalAlignment(JTextField.LEFT);
  25. TF1.setBounds(10,60,100,25);
  26. JLabel answer = new JLabel("",1);
  27.  
  28. add(TF); add(TF1); add(answer);
  29. // ActionListener actionListener = new TestActionListener();
  30. JButton btn = new JButton("Сложить");
  31. btn.setBounds(10,100,100,25);
  32. btn.addActionListener(TestActionListener);
  33. add(btn);
  34. }
  35. }
  36. public class TestActionListener implements ActionListener {
  37. public void actionPerformed(ActionEvent e) {
  38. int t, t1, result;
  39. t = Integer.parseInt(TF.getText());
  40. t1 = Integer.parseInt(TF1.getText());
  41. result = t + t1;
  42. write.setText("Ответ:" + result);
  43. }
  44. }
  45. class Geometry{
  46. public static void main(String[] args) {
  47. new GeometryFrame();
  48. }
  49. }

Решение задачи: «Слушатель и JLabel»

textual
Листинг программы
  1. import java.awt.event.ActionEvent;
  2. import java.awt.event.ActionListener;
  3. import javax.swing.JButton;
  4. import javax.swing.JFrame;
  5. import javax.swing.JLabel;
  6. import javax.swing.JPanel;
  7. import javax.swing.JTextField;
  8. import javax.swing.SpringLayout;
  9.  
  10. public class GeometryRevoked extends JFrame implements ActionListener{
  11.     private static final long serialVersionUID = 1L;
  12.  
  13.     public static void main(String[] args){
  14.         new GeometryRevoked();
  15.     }
  16.  
  17.     private JTextField t1, t2;
  18.     private JLabel result;
  19.     private JButton button;
  20.  
  21.     GeometryRevoked(){
  22.         initFrame();
  23.         initComponents();
  24.         setVisible(true);
  25.     }
  26.  
  27.     private void initComponents(){
  28.         SpringLayout layout = new SpringLayout();
  29.         JPanel panel = new JPanel(layout);
  30.  
  31.         t1 = new JTextField(20);
  32.         t2 = new JTextField(20);
  33.         button = new JButton("Button");
  34.         result = new JLabel("");
  35.  
  36.         layout.putConstraint(SpringLayout.WEST, t1, 5, SpringLayout.WEST, this);
  37.         layout.putConstraint(SpringLayout.WEST, t2, 5, SpringLayout.WEST, this);
  38.         layout.putConstraint(SpringLayout.NORTH, t2, 25, SpringLayout.NORTH, this);
  39.  
  40.         layout.putConstraint(SpringLayout.WEST, result, 5, SpringLayout.WEST, this);
  41.         layout.putConstraint(SpringLayout.NORTH, result, 50, SpringLayout.NORTH, this);
  42.  
  43.         layout.putConstraint(SpringLayout.WEST, button, 5, SpringLayout.WEST, this);
  44.         layout.putConstraint(SpringLayout.NORTH, button, 75, SpringLayout.NORTH, this);
  45.  
  46.         panel.add(t1);
  47.         panel.add(t2);
  48.         panel.add(result);
  49.         panel.add(button);
  50.  
  51.         button.addActionListener(this);
  52.  
  53.         add(panel);
  54.     }
  55.  
  56.     private void initFrame(){
  57.         setSize(300, 300);
  58.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  59.         setLocationRelativeTo(null);
  60.         setResizable(false);
  61.     }
  62.  
  63.     @Override
  64.     public void actionPerformed(ActionEvent e){
  65.         int value = Integer.parseInt(t1.getText()) + Integer.parseInt(t2.getText());
  66.         result.setText(String.valueOf(value));
  67.     }
  68. }

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут