繁体   English   中英

如何制作具有对所有方法和类均可用的imageIcon的JLabel?

[英]How do I make a JLabel that has an imageIcon that is available to all methods and classes?

我希望在JLabel中有一个ImageIcon,我将能够从其他方法进行更新。 但我想不出一种方法来创建静态JLabel(以便能够从另一种方法访问它),也无法将其安装为包含imageIcon的Jlabel-除了JLabel标签之外,还有其他方法吗? = new JLabel(imgIcon)使用imageIcon创建标签? 尝试使用setIcon方法,而标签没有像上面那样被固定,但是给出了空指针异常。 感谢您的协助。

不要将JLabel设为静态-而是在其他方法之外但仍在您的类中定义它。

public class Test {

    private JLabel label = new JLabel(new ImageIcon(/*your icon*/));
}

如果需要从另一个类访问它,请创建一个访问器方法:

public JLabel getLabel() {
    return label;
}

如果要在不创建对象的情况下访问它们,则仅在任何类(例如Clazz )中使用静态方法或对象(例如Clazz c = new Clazz(); )。 例如,如果我使一个静态方法public static void staticMethod() {}和一个常规方法public void regularMethod() {} ,这就是我访问它们的方式:

public class Clazz //A class with methods
{
  public void regularMethod()
  {
    //Do something local
  }

  public static void staticMethod()
  {
    //Do something static
  }
}

public class Main //The main class with the main method.
{
  public static void main(String[] args)
  {
    Clazz.staticMethod();

    Clazz c = new Clazz();

    c.regularMethod();
  }
}

注意,我没有调用Clazz.regularMethod(); ,因为这是不可能的。 我没有打电话给c.staticMethod(); 因为那是不好的形式,即使有可能。

总之,除非绝对必要(A),或者必须随时从任何上下文访问(B),否则请尽量不要使用静态对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM