3

Netbean の 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) は静的コンテキストから参照できません

メインの JFrame のアイコンを Netbean の swing desinger プレビューまたは私の run() メソッドから設定する方法はありますか?

4

3 に答える 3

7

OPは少し古いですが、記録のために、これを試してください:

frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("org/icon.png")));
于 2013-01-18T13:53:32.043 に答える
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 を使い続けたいと思っていました。

于 2011-06-21T16:24:39.047 に答える
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;
        }
    }
}
于 2011-06-21T05:03:48.593 に答える