gpt4 book ai didi

java - 如何更改方法中的 JComponent 属性

转载 作者:行者123 更新时间:2023-12-01 15:05:14 27 4
gpt4 key购买 nike

我正在尝试编写一个 GUI,其中包含我想要更改、添加、删除等的元素(特别是 JLabels 和 JButton)。然而,Java 告诉我这些对象的所有修饰符都是无效的(final 除外),这意味着我无法在定义它们的位置之外引用这些对象。我的问题是,如何设置才能稍后操作这些元素?

如果相关的话,我的 GUI 是一个包含菜单栏、 Canvas 和面板(其中包含我想要操作的元素)的 JFrame。

预先感谢您的任何帮助。

最佳答案

Java is telling me that all modifiers for these objects are invalid

从这个描述看来,您正在本地创建需要在其他地方访问的组件,例如在 ActionListener 类中。

我建议不要创建任何属于 JFrame 或 GUI 容器或本地范围内的组件,例如main 方法,稍后可能需要访问。下面的简单示例展示了如何通过内部类 ButtonAction 轻松访问组件 label1:

public class SwingExample extends JFrame {
private JButton button1;
private JLabel label1;

public SwingExample() {
super("SwingExample");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
button1 = new JButton("Test");
button1.addActionListener(new ButtonAction());
label1 = new JLabel("Swing Example", JLabel.CENTER);
add(label1, BorderLayout.CENTER);
add(button1, BorderLayout.SOUTH);
}

public static void main(String[] args) {
// don't create any locally scoped components here
new SwingExample().setVisible(true);
}

class ButtonAction extends AbstractAction {

@Override
public void actionPerformed(ActionEvent e) {
label1.setText("label1 Accessed through global variable");
}
}
}

关于java - 如何更改方法中的 JComponent 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13052671/

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