0

私は現在 Netbean 6.9.1 を使用していますが、ビルド時に PNG ファイルをプログラムに追加したいだけです。ファイルをいくつかの GUI ボタン​​とラベルのアイコンとして使用しています。しかし、クリーンを選択してメイン プロジェクトをビルドするか、メイン プロジェクトをビルドして IDE の外部で JAR ファイルを実行すると、アイコンが表示されません。

画像ファイルをプロジェクト フォルダーに入れ、基本的にはこのようなコードを追加するだけです。コードは機能しており、アイコンを表示しますが、それらのアイコンの画像を選択しませんでした。

void setMainForm(Resources r) {
        UIManager.getInstance().setResourceBundle(r.getL10N("localize", "en"));

        MainScreenForm main = new MainScreenForm(this, "Business Organiser");
        if(mainMenu != null){
            main.setTransitionInAnimator(mainMenu.getTransitionInAnimator());
            main.setTransitionOutAnimator(mainMenu.getTransitionOutAnimator());
        }else{
            main.setTransitionOutAnimator(CommonTransitions.createFade(400));
        }
        mainMenu = main;
        int width = Display.getInstance().getDisplayWidth(); //get the display width

        elementWidth = 0;


        Image[] selectedImages = new Image[DEMOS.length];
        Image[] unselectedImages = new Image[DEMOS.length];

        final ButtonActionListener bAListner = new ButtonActionListener();
        for (int i = 0; i < DEMOS.length; i++) {
            Image temp = r.getImage(DEMOS[i].getName() + "_sel.png");
            selectedImages[i] = temp;
            unselectedImages[i] = r.getImage(DEMOS[i].getName() + "_unsel.png");
            final Button b = new Button(DEMOS[i].getName(), unselectedImages[i]);
            b.setUIID("DemoButton");
            b.setRolloverIcon(selectedImages[i]);
            b.setAlignment(Label.CENTER);
            b.setTextPosition(Label.BOTTOM);
            mainMenu.addComponent(b);
            b.addActionListener(bAListner);
            b.addFocusListener(new FocusListener() {

                public void focusGained(Component cmp) {
                    if (componentTransitions != null) {
                        mainMenu.replace(b, b, componentTransitions);
                    }
                }

                public void focusLost(Component cmp) {
                }
            });

            demosHash.put(b, DEMOS[i]);
            elementWidth = Math.max(b.getPreferredW(), elementWidth);
        }
         if(cols == 0){
            cols = width / elementWidth;
        }
        int rows = DEMOS.length / cols;
        mainMenu.setLayout(new GridLayout(rows, cols));
        mainMenu.setDragMode(true);

        mainMenu.addCommand(exitCommand);
        mainMenu.addCommand(aboutCommand);
        mainMenu.addCommand(rtlCommand);
        mainMenu.addCommand(dragModeCommand);
        mainMenu.addCommand(runCommand);

        mainMenu.addCommandListener(this);
        mainMenu.show();
    }
4

1 に答える 1

0

画像を src フォルダーに配置して、jar にパッケージ化する必要があります (jar で 7zip を使用して、何が入ったかを確認します)。画像の URL を指定しなかった場合、たとえば、src ルートのアイコンは次のように動作するはずです。

"/icon.png"
于 2011-05-19T09:57:21.077 に答える