gpt4 book ai didi

java - 如何通过单击 JButton 来更改 JLabel 文本?

转载 作者:行者123 更新时间:2023-12-02 06:38:47 25 4
gpt4 key购买 nike

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

class myAction extends JFrame implements ActionListener {
myAction() {

super("Lab 4 Question 1");

Container c = getContentPane();
JPanel p = new JPanel();
JPanel p1 = new JPanel();

JButton b = new JButton("Button 1");
JButton b1 = new JButton("Button 2");
JButton b2 = new JButton("Button 3");

Font newFont = new Font("SERIF", Font.BOLD, 16);
b1.setFont(newFont);
b1.addActionListener(this);

JLabel l = new JLabel("Hello.");

p.add(b);
p.add(b1);
p.add(b2);
p1.add(l);
c.add(p);
c.add(p1);

c.setLayout(new FlowLayout());
setSize(300, 300);
show();
}

public static void actionPerformed (ActionEvent e) {
if(e.getSource().equals(b))
{
this.l.setText("Testing");
}
}


public static void main(String[] args) {
myAction output = new myAction();
}
}

如何让 JButton b1 更改 JLabel l 的值?我对编程相当陌生,所以对于你们注意到的任何错误我深表歉意!我只需要在单击按钮时更改它,我认为我做对了,但找不到我的符号,而且我很确定我不应该将它们传递到方法中:S

最佳答案

好吧,您甚至没有为按钮添加 ActionListener 并将 actionPerformed 方法设置为非静态(只需删除 static)。这解决了一个问题:

b.addActionListener(this);

此外,我建议使用匿名内部类,而不是直接在类中实现 ActionListener。像这样:

b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//Do stuff
}
});

另外,创建您的 JButton 变量。作为实例变量(将它们移到构造函数之外)。

关于java - 如何通过单击 JButton 来更改 JLabel 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19360050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com