2011-06-21 46 views
2

我一直試圖在Netbean的GUI構建器中設置一個窗口,但沒有成功。我試過訪問JFrame的,從我的主類爲:在Netbeans swing gui構建器中設置jFrame的圖標

public void run(){ 

    JFrame frame = new JFrame("Title of Frame"); 
    frame.setIconImage(Toolkit.getDefaultToolkit().getImage("org/icon.png")); 

} 

從我和我的icon.png主窗口分開創建一個新的框架。我想知道是否有某種方法可以訪問包含我其餘UI元素的JFrame,並設置該圖標。

我也試過 new SearchAppUI().setIconImage(null); 它沒有做任何註釋。

直接設置圖標:

JFrame.setIconImage("org/icon.png"); 

給我的錯誤,非靜態方法setIconImage(java.awt.Image中)不能從靜態上下文引用。

有沒有任何方法可以從Netbean的swing desinger預覽或從我的run()方法設置主JFrame的圖標?

回答

3

NVM,我發現了一個解決方案:http://www.youtube.com/watch?v=o_35iro4b7M

描述如何設置JFrame的圖標和標題。基本上,它需要 庫

import javax.swing.JFrame; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.awt.Image; 
import javax.imageio.ImageIO; 

我非常想堅持使用Netbean的guibuilder現在,至少在原型。

+0

接受你的答案,幫助別人看到你的問題已經解決了。 – MockerTim

1

首先。值得一讀How to Make Frames

您可以使用下面的示例。

import java.awt.BorderLayout; 
import java.awt.Dimension; 
import java.lang.reflect.InvocationTargetException; 
import java.net.URL; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 

public class FrameWithIcon extends JFrame { 

    public static void main(String[] args) { 
     try { 
      SwingUtilities.invokeAndWait(new Runnable() { 

       public void run() { 
        FrameWithIcon myFrame = new FrameWithIcon(); 
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        myFrame.setTitle("Frame with Icon"); 
        myFrame.setLayout(new BorderLayout()); 
        myFrame.setIconImage(
         loadImageIcon("org/icon.png").getImage()); 

        Dimension size = new Dimension(250, 100); 
        JPanel panel = new JPanel(); 
        panel.setPreferredSize(size); 

        myFrame.add(panel, BorderLayout.LINE_START); 
        myFrame.setVisible(true); 
        myFrame.pack(); 
       } 
      }); 
     } catch (InterruptedException ex) { 
     } catch (InvocationTargetException ex) { 
     } 
    } 

    /** Returns an ImageIcon, or null if the path was invalid. */ 
    private static ImageIcon loadImageIcon(String path) { 
     URL imgURL = FrameWithIcon.class.getResource(path); 
     if (imgURL != null) { 
      return new ImageIcon(imgURL); 
     } else { 
      System.err.println("Couldn't find file: " + path); 
      return null; 
     } 
    } 
} 
3

的OP是有點過時,但只是備案,試試這個:

frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("org/icon.png"))); 
相關問題