Java 我如何制作一个JLabel,它有一个可用于所有方法和类的imageIcon?
我希望在JLabel中有一个ImageIcon,我可以从另一个方法更新它。但我无法找到一种方法来创建静态JLabel(以便能够从另一个方法访问它)并将其安装为包含imageIcon的JLabel-除了JLabel label=new JLabel(imgIcon)之外,还有其他方法来创建带有imageIcon的标签吗?尝试使用setIcon方法,但标签未按上面的方式设置,但它给出了空指针异常。非常感谢您的帮助。不要将JLabel设置为静态,而是在其他方法之外定义它,但仍然在您的类中Java 我如何制作一个JLabel,它有一个可用于所有方法和类的imageIcon?,java,swing,Java,Swing,我希望在JLabel中有一个ImageIcon,我可以从另一个方法更新它。但我无法找到一种方法来创建静态JLabel(以便能够从另一个方法访问它)并将其安装为包含imageIcon的JLabel-除了JLabel label=new JLabel(imgIcon)之外,还有其他方法来创建带有imageIcon的标签吗?尝试使用setIcon方法,但标签未按上面的方式设置,但它给出了空指针异常。非常感谢您的帮助。不要将JLabel设置为静态,而是在其他方法之外定义它,但仍然在您的类中 public
public class Test {
private JLabel label = new JLabel(new ImageIcon(/*your icon*/));
}
如果需要从其他类访问它,请创建一个访问器方法:
public JLabel getLabel() {
return label;
}
当您希望在不创建对象的情况下访问任何类(如
Clazz
)中的静态方法或对象(如Clazz c=new Clazz();
)时,仅在其中使用静态方法或对象。例如,如果我创建一个静态方法publicstaticvoidstaticmethod(){}
和一个常规方法publicstaticvoidregularmethod(){}
,我就是这样访问它们的:
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)必须随时从任何上下文访问它如果标签是私有创建的,如果它是在任何方法之外创建的,我可以从同一类中的其他方法访问它吗?因为我得到一个错误,告诉我不能从静态上下文引用非静态变量?这是否意味着即使在同一个类中,我也必须使用getlabel(0方法?如果是,我如何使用getlabel()方法?我是否需要创建一个标签来从ie label2=test.getlabel()调用getlabel方法?或者如何访问它以更改标签中的图标?感谢如果希望从同一类中的其他方法访问,请不要将方法设置为静态。但是,如果希望同时从同一类和另一类访问,我该怎么办?getLabel()就是这样做的方法是。您必须创建一个Test实例。我建议您访问www.java-made-easy.com,它提供了一个完美的教程,演示如何正确创建类和类的实例,以便在类之外使用。