Java 设置图标时遇到问题

Java 设置图标时遇到问题,java,Java,在这方面我还是个新手,我总是得到“非静态方法不能从静态内容引用”很多。。。不仅仅是这个…:( 我用这个视频尝试了以下内容: 也尝试将其放在主方法中,但仍然存在相同的错误(对于第二行) 任何帮助都将不胜感激。您只需创建Home类的实例 import java.awt.Toolkit; public class Home extends javax.swing.JFrame implements Runnable { public Home() { initCompone

在这方面我还是个新手,我总是得到“非静态方法不能从静态内容引用”很多。。。不仅仅是这个…:(

我用这个视频尝试了以下内容:

也尝试将其放在主方法中,但仍然存在相同的错误(对于第二行)


任何帮助都将不胜感激。

您只需创建Home类的实例

import java.awt.Toolkit;

public class Home extends javax.swing.JFrame implements Runnable {

    public Home() {
        initComponents();
        setIcon();
    }

    private void initComponents(){}
    @Override public void run() {}

    public static void main(String args[]) {
        Home home = new Home();     
    }

    private void setIcon() {
        setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Images/icon.png")));
    }

}

首先,您的setIcon()是私有的,将其设置为公共的,您直接调用该函数,而不创建对象。如果您想这样做,请将setIcon设置为静态的,但对setter函数来说这不是正确的做法。如果您想从main调用任何方法,请创建Home的实例并使用它:Home Home=new Home();home.setIconImage(…)
    ImageIcon img = new ImageIcon("/Images/icon.png");
    Home.setIconImage(img.getImage());
import java.awt.Toolkit;

public class Home extends javax.swing.JFrame implements Runnable {

    public Home() {
        initComponents();
        setIcon();
    }

    private void initComponents(){}
    @Override public void run() {}

    public static void main(String args[]) {
        Home home = new Home();     
    }

    private void setIcon() {
        setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Images/icon.png")));
    }

}