2011-06-21 1 views
2

Я пытался настроить окно в GUI-дизайнере Netbean без успеха. Я пытался получить доступ к JFrame, от моего основного класса как:Настройка значка для jFrame в Netbeans swing gui builder

public void run(){ 

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

} 

который создает новый кадр, кроме моего главного окна с моей icon.png. Я хотел бы знать, есть ли способ получить доступ к JFrame, который содержит остальные элементы моего интерфейса, и установить этот значок.

Я также пробовал new SearchAppUI().setIconImage(null); который не делает ничего примечательного.

Установка значка непосредственно:

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

дает мне ошибку, нестатический метод setIconImage (java.awt.Image) нельзя ссылаться из статического контекста.

Есть ли способ установить главную иконку JFrame из предварительного просмотра ничейной оболочки Netbean или из моего метода run()?

ответ

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; 

Я довольно много хотел придерживаться использования GUIBuilder Netbean для теперь, по крайней мере, для прототипирования.

+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

ОП немного устарели, но только для записи, попробуйте следующее:

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

 Смежные вопросы

  • Нет связанных вопросов^_^