gpt4 book ai didi

java - Swing 按钮使标签或文本字段发生变化

转载 作者:行者123 更新时间:2023-12-02 03:33:58 24 4
gpt4 key购买 nike

我是 Java 新手,正在尝试使用两个按钮来更改文本字段和标签。我认为问题在于ClearButton类中的l和CopyButton类中的tf无法被引用。我该怎么做?

public class SwingEx1  
{
JFrame f;
JPanel p;
JLabel l;
JTextField tf;
JButton b1,b2;

public SwingEx1()
{
f = new JFrame("Swing Example");
p = new JPanel();
l = new JLabel("Initial Label");
tf = new JTextField("Enter Text");
b1 = new JButton("Clear");
b2 = new JButton("Copy");
}

public void LaunchFrame()
{
p.add(b1,BorderLayout.SOUTH);
p.add(b2,BorderLayout.SOUTH);
p.add(l,BorderLayout.CENTER);
p.add(tf,BorderLayout.CENTER);
f.getContentPane().add(p);
b1.addActionListener(new ClearButton());
b2.addActionListener(new CopyButton());
f.pack();
f.setVisible(true);
}

public static void main(String args[])
{
SwingEx1 swObj1 = new SwingEx1();
swObj1.LaunchFrame();
}
}

class ClearButton implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
tf.setText("");
}
}

class CopyButton implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
l.setText(tf.getText());
}
}

最佳答案

这是一个范围问题。您已在 SwingEx1 类中声明了 tf,因此外部类不知道它存在!我会将按钮类移到 SwingEx1 类中,这应该使它们能够解析变量名称。类结构如下所示:

class SwingEx1 
{
...
class ClearButton implements ActionListener
{
...
}
class CopyButton implements ActionListener
{
...
}
}

关于java - Swing 按钮使标签或文本字段发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37686463/

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