[英]Jframe Contents not Being Displayed
當用戶單擊應用程序中的特定按鈕時,我試圖在新的JFrame中顯示“正在加載圖像”。顯示了JFrame,但它什么也沒有顯示!也有白色背景,而所有JFrame都有灰色默認背景。這是怎么了
stop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
analyzer.running=false;
JFrame Load1=new JFrame("Load1");
ImageIcon icon1=new ImageIcon("./ajax-loader.gif");
System.out.println(icon1.getIconHeight());
Load1.add(new JLabel("Retrieving...", icon1, JLabel.CENTER),BorderLayout.CENTER);
Load1.pack();
Load1.setSize(400,400);
Load1.setVisible(true);
System.out.println("Start Processing");
parser.parse(); // Time Consuming method
nw_Creator.create();
System.out.println("End Processing");
Load1.setVisible(false);
home.setVisible(false);
screen2.setVisible(true);
}
});
不要將耗時的部件放在事件處理程序或事件分發線程中運行的任何方法中。 您可能要使用搖擺工人 。
發生的事情是,您永遠不會釋放UI線程,因此您的JFrame永遠不會被繪制。 由於所有圖形操作都是在UI線程上完成的,因此如果要讓jframe顯示任何內容,則必須釋放它,進行計算,然后關閉該幀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.