2016-03-08 71 views
1

仍然在這個對於新手,我一直都想與「非靜態方法不能從靜態內容中引用」很多......不只是這個... :(遇到問題設置圖標

我試着下面使用該VID; https://www.youtube.com/watch?v=40ikcEonWng

public class Home extends javax.swing.JFrame implements Runnable { 
    public Home() { 
    initComponents(); 
    setIcon(); 
    } 

    public static void main(String args[]){ 

    } 

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

    } 
} 

還試圖把這個在主方法,但仍相同的錯誤(對於第二行);

ImageIcon img = new ImageIcon("/Images/icon.png"); 
    Home.setIconImage(img.getImage()); 

任何幫助,將理解

+0

首先你的的setIcon()是私人使公共和你直接調用該函數未做的object..If你想這樣做使作爲的setIcon靜態的,但它不是做正確的事對於setter函數。 –

+0

如果您想從main調用您的任何方法,請創建一個Home實例並使用它: Home home = new Home(); home.setIconImage(...) –

回答

1

你只需要創建一個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"))); 
    } 

}