我想設置關閉Jdialog的默認關閉操作。但是,我的進度條代碼覆蓋了結束事件。我不確定是否有地方寫出隱藏/簡單地關閉Jdialog上點擊X
dialog.setVisible(true); and dialog.setDefaultCloseOperation(HIDE_ON_CLOSE);
陳述。
以下是我的init() method
和和我的Jdialog
。 請檢查並建議。
@Override
public void init() {
dialog = new JDialog(new JFrame(), "Progress", true);
dialog.setSize(300, 75);
dialog.setDefaultCloseOperation(HIDE_ON_CLOSE);
}
public void updateProgressBar(final int progress) {
dialog.setAlwaysOnTop(true);
for (i = 0; i <= 100; i = i + 1) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
progressBar.setValue(progress);
dialog.setVisible(true);
}
});
}
if(progressBar.getValue()==100){
dialog.dispose();
System.out.println("File uploaded successfully!");
}
什麼沒有在這裏工作是 - dialog.setDefaultCloseOperation().
爲什麼不工作是 - 因爲我在updateProgessBar()
方法dialog.setVisible(true)
,以示我的文件上傳更新進度。
每次有進展時,dialog.setVisible becomes true
,因此覆蓋init() method
中寫入的setDefaultCloseOperation
。 如果我將dialog.setVisible(true)放在其他地方的updateProgressBar()中,則jdialog進度條不會更新並按預期顯示。
所以,我的問題是如何調整代碼中的這兩個語句,以便我也能夠執行默認的關閉操作?
你可以發佈一個[最小,完整,測試和可讀的示例](http://stackoverflow.com/help/mcve),更好地解釋什麼是不工作.. _after_你發佈MCTRE。 –
謝謝,更新了我的問題以提供更好的清晰度。 – eros