0
我無法在我的程序獲取URL時顯示「加載」消息。我嘗試了使用幾種不同的方法,例如Thread
,SwingWorker
和SwingUtilities
,但是「加載」消息在獲取網頁後總是顯示出來。如何在取得網頁前顯示「載入」?在Java Swing中使用HttpURLConnection顯示「加載」消息
public static void get(String url)
{
content.add(new JLabel("Loading..."));
content.repaint();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// load webpage
}
});
}
基本上,你這樣做是錯誤的。 GUI應該在invokeLater()或invokeAndWait()中更新。 –
所以我想調用invokeLater()兩次?一次用於「加載」,一次用於實際內容? –
否。不要將長時間運行的代碼放在invokeLater中。它應該在後臺工作線程中完成。如果在這樣的線程中調用get(),則將代碼放在那裏。否則,你可以使用類似SwingWorker的東西。 –