1

私はこのコードを持っています:

 public DesktopApplication1View(SingleFrameApplication app)
    {
        super(app);
        pbu.registriere(this);

        ImageIcon icon = new ImageIcon("resources/BilKa_Icon_32.png");
        this.getFrame().setIconImage(icon.getImage());

        initComponents();

アプリウィンドウの左上に画像アイコンが表示されないのはなぜだろうか。代わりに、それはまだJavaカップのコーヒーロゴです。

何か問題でもありますか?

ありがとうございました

4

2 に答える 2

2

Mike Kは正しいです。ImageIconsは動的にロードでき、画像は最初に初期化されたときにサイズがゼロになる可能性があります。また、UnixおよびJARでは、名前で大文字と小文字が区別されることに注意してください。

これを試して:

 try{
   ImageIcon icon = new ImageIcon("resources/BilKa_Icon_32.png");
   MediaTracker mt=new MediaTracker(this);
   mt.addImage(icon.getImage(),0);
   mt.waitForAll();
   this.getFrame().setIconImage(icon.getImage());
 }catch(InterruptedException excp){}

-

addImageを編集しました。任意の数の追加のパラメーターIDが必要です。「そのようなコンストラクターはありません」というエラーに関しては、コンストラクターにを渡す必要があることを示していますComponent。アプリウィンドウはコンポーネントであるため、ここでパラメーターとして渡す必要があります。thisほとんどの人がこのコードclassをextends FrameWindowまたは。の中に入れているので、私は使用しましたJFrame。だから使用する

MediaTracker mt=new MediaTracker(this.getFrame());
于 2011-09-25T19:20:50.217 に答える
2

考えられる可能性の1つは、リソースパスが正しくない可能性があることです。ファイル階層の内容や、クラスファイルがjar内にあるかどうかなどによっては、パスを相対ではなく絶対にするために、resの前のパスの先頭に「/」が必要になる場合があります。チュートリアル:http ://download.oracle.com/javase/1.5.0/docs/guide/lang/resources.html

画像を正しく読んでいるとかなり確信している場合(ウィンドウ内にダミーコンポーネントを作成し、そこに画像をロードできるかどうかを確認することをお勧めします)、フレーム/トップレベルウィンドウチュートリアルを確認する必要があります。 、特に窓の装飾に関する部分。特に、あなたがしていないかもしれないことの1つ(スニペットからはわかりません)はJFrame.setDefaultLookAndFeelDecorated(true);、フレームを作成する前に設定する必要があるように見えることです...これは、を使用して行うことはできませんが、行うthis.getFrame()必要があります初期化コードの早い段階で実行します。

于 2011-09-25T18:52:49.143 に答える