2011-02-02 48 views
5

我有一個加載網頁的Java swing應用程序。有時,網頁需要一段時間才能加載,具體取決於用戶的互聯網連接。Java Swing:模態加載屏幕?

我想阻止這個幀,直到頁面加載。

回答

5

最簡單的方法是將彈出一個模態對話框:

JDialog modalDialog = new JDialog(frame, "Busy", ModalityType.DOCUMENT_MODAL); 
modalDialog.setSize(200, 150); 
modalDialog.setLocationRelativeTo(frame); 
modalDialog.setVisible(true); 

您可能希望把一個進度條了。

0

這是可能的... 我想出了一個解決方案。

我也有這個問題。

當您按照another answer的建議創建模態對話框時,只有用戶可以關閉它。
只有在加載結束後才能使其自行處理時,它纔有用。

[更新]

這裏是我的對話框類

public final class Loading extends javax.swing.JDialog { 

    /* 
    * Creates new form Loading 
    * @param parent 
    * @param modal 
    */ 
    public Loading(java.awt.Frame parent,boolean modal) { 
     super(parent, modal); 
     initComponents(); 
    } 

    private void formWindowActivated(java.awt.event.WindowEvent evt) {          
     //Code to execute while loading 
     this.dispose(); 
    }              
} 

在這裏,你這樣稱呼它。

Loading l = new Loading(this/*In case you class is a frame, null otherwise*/, true); 
l.setVisible(true); 

在執行加載代碼後,它將關閉並繼續父類上的代碼。

+0

您可以向加載任務提供回調以調用對話框上的dispose方法。 – Daniel 2017-07-07 12:40:14