java - 为什么我无法在构造函数之外访问 JLabel?

标签 java jlabel

所以我在主类的构造函数中创建了一个 JLabel,然后,我在类中有一个单独的方法来更新它 (updateLabel())。但无法从更新方法中访问标签。如何从方法内部访问它?谢谢

public Difficulty(){
    JLabel lblNewLabel = new JLabel((comboBox_9.getSelectedItem().toString()));
    lblNewLabel.setBounds(300, 70, 46, 23);
    contentPane.add(lblNewLabel);
}

public void updateLabel(Skill skill){

}

在更新Label方法中我想说lblNewLabel.setText(skill.toString())

但我无法访问该标签。

最佳答案

您需要考虑变量范围:Java Tutorials - Declaring Member Variables

如果您在构造函数的范围内声明一个对象,那么它将无法在其他地方访问,例如 updateLabel() 方法。

尝试将您的 JLabel 声明为字段,例如:

private JLabel label;

public JLabelContainer() {
   label = new JLabel();
}

public void updateLabel(String text){
  label.setText(text);
}

这里,标签在字段级别声明,在构造函数中实例化,然后在 updateLabel(..) 方法中访问。

关于java - 为什么我无法在构造函数之外访问 JLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33961910/

相关文章:

java - JLabel 强制文本适合 JLabel 边界(空布局)

java - 使用按钮更改 fragment 的大小

java - 如何在不使用数组的情况下读取字符串并存储到不同的变量中

java - 测试 jpa ddl 类型

java - 执行程序时不出现JLabel

java - 制作幻灯片程序

java - 在 gui Java 中对 if 语句的输出显示添加延迟

c# - 批量HQL插入

java - Maven编译: package does not exist

java - GUI 中的窗口引用(?)问题