非静态方法setPrzechowaj(java.lang.String)不能从静态上下文引用

时间:2010-05-29 23:51:44

标签: java

  

可能重复:
  non static method cannot be referenced from static context

嘿,我有JDialogForm的问题。我用netbeans 6.8创建了它。那个JDialogForm下面有文本字段和按钮。这是一些代码...

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       String sciezka = jTextField1.getText();
       if (sciezka.length() > 0)
       {
          Zmienne_pomocnicze.setPrzechowaj(sciezka);
       }
   }  

现在我想把那个字符串“sciezka”复制到我的主窗口,但如果我这样做的话

public class Zmienne_pomocnicze {

public String n;
public void setPrzechowaj (String neew)
{
   n = neew;
}
public String getPrzechowaj ()
{
   return n;
}

}

我在jButton1中得到错误:非静态方法setPrzechowaj(java.lang.String)不能从静态上下文引用 任何想法?

1 个答案:

答案 0 :(得分:2)

Zmienne_pomocnicze.setPrzechowaj(sciezka);

这里你直接通过classname调用方法而不实例化类。这要求方法为static,即:

public static void setPrzechowaj (String neew)
{
   n = neew;
}

但是您通常只想创建类的可重用实例并在其上调用方法,以便不会在类的所有现有实例之间共享/应用此变量/行为。

Zmienne_pomocnicze zp = new Zmienne_pomocnicze();
zp.setPrzechowaj(sciezka);

另见: