Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法更改JLabel值_Java_Spring_Swing_Awt - Fatal编程技术网

Java 无法更改JLabel值

Java 无法更改JLabel值,java,spring,swing,awt,Java,Spring,Swing,Awt,我对NetBeans是新手。我无法在eclipse中运行此功能。当我试着运行它时,我得到一个错误,比如非静态变量不能从静态上下文引用。请帮我解决这个问题 InetAddress ip; try { ip = InetAddress.getLocalHost(); String t1= ip.getHostName(); sysname.setText(t1); // HERE IS THE ERROR //sysname.setTe

我对NetBeans是新手。我无法在eclipse中运行此功能。当我试着运行它时,我得到一个错误,比如非静态变量不能从静态上下文引用。请帮我解决这个问题

InetAddress ip;

try {
    ip = InetAddress.getLocalHost();
    String t1= ip.getHostName();

    sysname.setText(t1);               // HERE IS THE ERROR
    //sysname.setText("hi");           // EVEN THIS ALSO MAKE ERROR
} catch (UnknownHostException ex) {
     Logger.getLogger(mainframe.class.getName()).log(Level.SEVERE, null, ex); 
}

从您发布的异常来看,您向我们展示的代码似乎是一个静态方法,可能是main,而变量sysname是一个实例变量,可能声明为

private JLabel sysname;

在没有实例的情况下,您无法访问实例字段,即从静态上下文访问实例字段。

如果它位于主字段中,请按照建议使用它:

public class test {
JLabel sysname;

private void setAdress() {
    InetAddress ip;

    try {
        ip = InetAddress.getLocalHost();
        String t1 = ip.getHostName();

        sysname.setText(t1); // HERE IS THE ERROR
        // sysname.setText("hi"); // EVEN THIS ALSO MAKE ERROR
    } catch (UnknownHostException ex) {
        Logger.getLogger(mainframe.class.getName()).log(Level.SEVERE, null, ex);
    }
}
然后在你的主要演讲中:

Test test = new Test();
test.setAdress();

根据问题描述,问题在于您正在从main内部引用非静态实例sysname

要引用sysname,您需要有一个似乎没有实例化的实例

简而言之,如果您的代码片段来自main方法,则可以执行以下操作


什么是系统名?声明在哪里?sysname表示JLabel的项目。还添加了周围的函数。这是一条主线吗?可能是静态的,这将解释错误请编辑你的问题,包括一个,而不是你的代码的一部分图片。此外,在使用GUI编辑器之前,请先学习。

public class App {
    private JLabel sysname = new JLabel();

    public static void main() {

            App app = new App();
             app.setIpLabel();

    }

      void setIpLabel() {
     InetAddress ip;

        try {
            ip = InetAddress.getLocalHost();
            String t1 = ip.getHostName();

            sysname.setText(t1); // HERE IS THE ERROR
            // sysname.setText("hi"); // EVEN THIS ALSO MAKE ERROR
        } catch (UnknownHostException ex) {
            Logger.getLogger(mainframe.class.getName()).log(Level.SEVERE, null, ex);
        }
}

}