私は何週間もこの問題に苦労してきましたが、役に立ちませんでした。他の 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);
}
}
これを機能させるにはレイアウトが重要であることは、他の場所で言及されています。レイアウト マネージャーに自分のやりたいことをさせるのはあまり運がありませんでしたが、この場合は画像を表示したいだけです。それができたら、希望どおりにフォーマットする作業を行います。