首页 > 解决方案 > 如何通过单击按钮更改标签文本?

问题描述

如果您回答,请发布示例代码。我的代码是:

package Program;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Screen extends JFrame {

    public Screen() {
        setVisible(true);
        setSize(600,400);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        setAlwaysOnTop(true);


        JPanel panel = new JPanel();

        panel.setBackground(Color.BLACK);
        panel.setLayout(null);

        JLabel lbl = new JLabel();
        lbl.setForeground(Color.green);
        lbl.setBounds(300,100,60,60);

        JButton btn1 = new JButton();
        btn1.setText("Click");
        btn1.setBackground(Color.MAGENTA);
        btn1.setBounds(200,200,70,50);
        btn1.addActionListener();

        panel.add(btn1);
        panel.add(lbl);

        add(panel);
        setContentPane(panel);



    }
    ActionListener kk = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            lbl.setText("blablabla, I know its local, but I don´t know how to fix it");
        }
    };
}

在我的 Main 方法/类中,我创建了这个类的一个对象,请帮忙。我已经说过我知道它是本地的,但我不知道如何解决它。

标签: javauser-interfacebuttonwindowactionlistener

解决方案


您没有在ActionListener对象和按钮之间建立链接。尝试这个:

package Program;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Screen extends JFrame {

    public Screen() {
        setVisible(true);
        setSize(600,400);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        setAlwaysOnTop(true);


        JPanel panel = new JPanel();

        panel.setBackground(Color.BLACK);
        panel.setLayout(null);

        JLabel lbl = new JLabel();
        lbl.setForeground(Color.green);
        lbl.setBounds(300,100,60,60);

        JButton btn1 = new JButton();
        btn1.setText("Click");
        btn1.setBackground(Color.MAGENTA);
        btn1.setBounds(200,200,70,50);
        ActionListener kk = new ActionListener() {
           @Override
            public void actionPerformed(ActionEvent e) {
               lbl.setText("blablabla, I know its local, but I don´t know how 
            to fix it");
           }
        };
        btn1.addActionListener(kk);

        panel.add(btn1);
        panel.add(lbl);

        add(panel);
        setContentPane(panel);



    }
    
}

或者很快:

btn1.addActionListener(new ActionListener() {
               @Override
                public void actionPerformed(ActionEvent e) {
                   lbl.setText("blablabla, I know its local, but I don´t know how 
                to fix it");
               }
            }); 

推荐阅读