8

デスクトップアプリケーションを開発しました。問題は、アプリケーションをjarファイルにエクスポートすると、アイコンがアプリに表示されないことです。Eclipseから実行すると、すべてのアイコンがそこに表示されます。

私のプロジェクトの例:

package net.ebank.gui;

import java.awt.*;
import javax.swing.*;


public class EBank extends JFrame {

    protected Start s;


    public EBank() {

        setTitle("Welcome To EBank");

        setBackground(Color.white);


        Image img = new ImageIcon("../EBank/res/bank.jpg").getImage();
        this.setIconImage(img);

        /*"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
        "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"*/

        setVisible(false);

        setSize(1350,700);

        setDefaultCloseOperation(this.EXIT_ON_CLOSE);

        try {

            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (ClassNotFoundException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();
        } catch (InstantiationException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block

            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        s= new Start(this);

        s.setLocation(getWidth()/2, getHeight()/4);


    }

    public static void main(String[] args){
        new EBank();
    }

}
4

3 に答える 3

6

コンストラクターClass#getResource()に相対パスを渡す代わりに使用します。ImageIcon

また、画像ファイルが実際に生成されたJARの一部であることを確認してください。

于 2012-12-19T02:17:03.243 に答える
6

それを機能させるには、次の手順に従います。

  • プロジェクトエクスプローラツリーでプロジェクトを右クリックします。
  • [新規]->[ソースフォルダー]に移動し、ソースフォルダーに任意の名前を指定します。
  • 次に、ファイルシステムからこのソースフォルダに手動でアクセスして、画像を追加してから新しいフォルダを作成する場合のように、自分で作成したこのソースフォルダに手動でコンテンツを追加します。
  • この新しいフォルダに画像という名前を付け、画像をこのフォルダにコピーします。
  • 次に、Eclipse IDEに戻り、プロジェクトエクスプローラーからプロジェクトを更新します。プロジェクトを右クリックすると、更新後に追加したコンテンツを確認できます。
  • ここで、たとえば任意の画像にアクセスするために、を使用します。

    getClass().getResource("/images/yourImageName.extension");
    

これは1つのURLオブジェクトを返します。この場合、最初のスラッシュを覚えておいてください。ソースフォルダー内にあるものはすべて、これを使用して簡単にアクセスできるためです。これで、プロジェクトを実行すると、このソースフォルダーのコンテンツが自動的にbinフォルダーに追加され、Runnable Jarを作成すると、ソースフォルダー内のものにそのままアクセスできるようになります。

このリンクで、私は画像を使って、Eclipseプロジェクトに画像を追加する方法を説明しようとしました

于 2012-12-19T04:42:55.677 に答える
4

JARファイルのレイアウトを修正することができます。これは、Eclipseの場合と同じようにフォルダーを適切に配置するか、MattBallが言ったようにClass#getResourceまたはを使用することClass#getResourceAsStreamです。

于 2012-12-19T02:32:57.017 に答える