Установка иконки для jFrame в Netbeans Swing Gui Builder

Я пытался настроить окно в графическом редакторе Netbean, но безуспешно. Я попытался получить доступ к JFrame из моего основного класса как:

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 из предварительного просмотра Swing Desinger в Netbean или из моего метода run()?

3 ответа

Решение

NVM, я нашел решение на: http://www.youtube.com/watch?v=o_35iro4b7M&feature=related

Описание того, как установить значок и заголовок jFrame. В основном это требует библиотек

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

Я очень хотел на данный момент использовать Guibuilder от Netbean, по крайней мере, для прототипирования.

ОП немного устарел, но для справки, попробуйте это:

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

Прежде всего. Стоит прочитать, как сделать рамки.

Вы можете использовать следующий пример.

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;
        }
    }
}
Другие вопросы по тегам