0

私は何週間もこの問題に苦労してきましたが、役に立ちませんでした。他の Java フォーラムでは、この件に関して私を助けることができなかったので、ここで新しい視点を持つ人を見つけられることを願っています。JFrameとりわけ、画像を挿入しようとしています。問題を再現する SSCCE をまとめました。

    public class ImageTest {
   public static void main(String[] args) {
    SplashScreen.ShowWindow();
   }
    }

    public class SplashScreen {

private JFrame frmKcbsEventsSearch;

public SplashScreen() {
    initialize();
}

public static void ShowWindow() {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                SplashScreen window = new SplashScreen();
                window.frmKcbsEventsSearch.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public void initialize() {
    frmKcbsEventsSearch=new JFrame();
    frmKcbsEventsSearch.getContentPane().setBounds(new Rectangle(200, 200, 520, 450));
    frmKcbsEventsSearch.getContentPane().setFont(new Font("Times New Roman", Font.PLAIN, 16));
    frmKcbsEventsSearch.setTitle("KCBS Events Search");
    frmKcbsEventsSearch.setBounds(200,200,520,450);
    frmKcbsEventsSearch.getContentPane().setLayout(new FlowLayout());
    frmKcbsEventsSearch.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    JLabel logo;
    java.net.URL logoURL=getClass().getResource("KCBSLogo.jpg");
    if (logoURL!=null) {
        try {
            logo = new JLabel();
            logo.setIcon(new ImageIcon(logoURL));
        }
        catch (Exception e) {
            logo = new JLabel("KCBS Logo");
        }
    }
    else {
        logo = new JLabel("KCBS Logo missing");
    }
    logo.setHorizontalAlignment(SwingConstants.CENTER);
    logo.setVerticalAlignment(SwingConstants.CENTER);
    frmKcbsEventsSearch.getContentPane().add(logo);
}
    }

これを機能させるにはレイアウトが重要であることは、他の場所で言及されています。レイアウト マネージャーに自分のやりたいことをさせるのはあまり運がありませんでしたが、この場合は画像を表示したいだけです。それができたら、希望どおりにフォーマットする作業を行います。

4

1 に答える 1

0

このコードは完全に正常に機能します!KCBSLogo.jpgをtile.pngという名前のソースに変更しました。私が走ったとき、それは完全に表示されました。KCBSLogo.jpgがプロジェクトのSRCフォルダーにあることを確認してください。

http://i.stack.imgur.com/sYfYF.png

ご覧のとおり、タイル画像が表示されています。

于 2012-12-20T22:53:40.750 に答える