0
我有一個應用程序,在顯示Jframe的開始處,用戶輸入必須分析的網頁的URL,然後用戶單擊確定。JFrame不繪製內容,只顯示白色矩形,當在ActionListener中可見時
當用戶點擊OK的ActionListener應該這樣做: 應該用文本顯示一個新的JFrame「請稍候,分析網站,這可能需要一點點」 那麼就應該開始analyzePage()方法。
問題是用戶點擊確定按鈕後,顯示新的Jframe,但它是空白的,只有在白色矩形裏面。只有在analyzePage()方法完成後(即幾秒鐘後),纔會顯示Jframe的內容。
static class OKListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
new WaitFrame();
// mf is main frame (the first frame where url was entered and where OK was clicked)
mf.setEnabled(false);
address = mf.getURLtext();
analyzePage();
}
}
public class WaitFrame extends JFrame {
public WaitFrame() {
super();
JFrame wait = this;
JLabel jl = new JLabel("Čakajte prosím, analyzujem stránku, môže to chvíľu trvať.");
JPanel jp = new JPanel();
jp.add(jl);
wait.getContentPane().add(jp);
wait.pack();
wait.setVisible(true);
}
}
沒有幫助,我認爲這個問題是該函數analyzePage()從ActionListener的的方法的actionPerformed(ActionEvent的五) – Marcel 2012-03-12 18:55:48
行內稱爲最後解決方法是將analyzePage()放入invokeLater方法中,而不是Jframe。謝謝! – Marcel 2012-03-12 19:16:28