有沒有辦法從JDialog
標題欄中刪除關閉按鈕(「X」)?刪除Swing JDialog中的「X」按鈕
回答
根據猜測,將其設置爲PL & F裝飾並按名稱刪除組件。
什麼是PL&F?謝謝。 – kenshinji 2015-05-29 03:01:57
PL&F是可插拔的外觀和感覺。 Swing可以採用任意外觀和感覺的醜陋方式。 – 2015-05-30 21:30:44
爲什麼醜陋?什麼是正確的方法來做到這一點? – 2015-09-05 18:56:40
您可以通過調用dialog.setUndecorated(true)來刪除整個對話框標題,但這意味着對話框不能再被移動。
您還可以執行dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)來防止該按鈕執行任何操作。
除此之外,我認爲沒有辦法完全去除X.
我相信你可以撥打dialog.setUndecorated(true)
刪除標題欄。雖然不確定只是'X'。
雖然刪除'X'可能不是一個好主意,因爲您希望用戶能夠輕鬆關閉對話框。
最好的辦法是控制用戶使用dialog.setDefaultCloseOperation
或WindowListener
單擊「X」時發生的情況。
從Java 1.7(AKA Dolphin或Java 7)開始,您無法禁用或刪除窗口上的關閉按鈕。您可以使用frame.setResizable(false)
刪除/禁用最大化按鈕,您可以使用java.awt.Dialog
或擴展它的類(如javax.swing.JDialog
)刪除最小化和最大化按鈕。您可以使用frame.setUndecorated(true)
刪除標題欄,邊框和按鈕,並且可以完全控制frame.setDefaultLookAndFeelDecorated(true)
標題欄中所有按鈕的可見性(同時失去一些跨平臺兼容性和操作系統集成)(假設它是JFrame或的JDialog)。這是目前JDK所能實現的所有控制。
static public void removeButtons(Component c){
if (c instanceof AbstractButton){
String accn = c.getAccessibleContext().getAccessibleName();
Container p=c.getParent();
//log.debug("remove button %s from %s",accn,p.getClass().getName());
c.getParent().remove(c);
}
else if (c instanceof Container){
//log.debug("processing components of %s",c.getClass().getName());
Component[] comps = ((Container)c).getComponents();
for(int i = 0; i<comps.length; ++i)
removeButtons(comps[i]);
}
}
這裏是我的經驗:
- 使用
setUndecorated(true)
嘗試:使整個Dialog
無形。 - 嘗試
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)
:這並沒有改變行爲。我的對話框仍然關閉。將默認關閉操作設置爲DO_NOTHING_ON_CLOSE
可代表對WindowListener
的windowClosing()
方法的關閉操作。
什麼工作對我來說是:
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
//Remove any existing WindowListeners
for (WindowListener wl : this.getWindowListeners())
this.removeWindowListener(wl);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if ("Optional condition") {
JOptionPane.showMessageDialog(null, "You cannot close this window");
}
}
});
- 1. JDialog取消按鈕
- 2. 刪除輸入中的X按鈕 - Metro
- 3. 如何從父對話框中刪除子jdialog引用Java Swing
- 4. 刪除按鈕
- 5. 刪除圍繞按鈕行它的點擊在Swing
- 6. java jdialog任務欄按鈕
- 7. 在Swing中的JDialog中的RadioButtons?
- 8. 從UIScrollView中刪除按鈕
- 9. 在UITableView中刪除按鈕
- 10. 的Java Swing按鈕
- 11. cakephp刪除按鈕
- 12. UITableView刪除按鈕
- 13. 按鈕被刪除
- 14. UITableView - 刪除按鈕
- 15. Extjs,刪除按鈕
- 16. 按住按鈕刪除
- 17. Swing中的自定義光標JDialog
- 18. 刪除與JavaScript的按鈕
- 19. 刪除按鈕的邊框
- 20. 刪除字符的按鈕
- 21. jQuery按鈕刪除動態行按鈕
- 22. SWT按鈕 - 刪除按鈕背景
- 23. 刪除按鈕,刪除多個控件
- 24. 刪除按鈕,刪除數據庫行
- 25. 刪除UITableViewCell無刪除按鈕?
- 26. 刪除ListView元素刪除按鈕
- 27. 當我按下按鈕時從MySQL表中刪除行刪除
- 28. 帶最小化按鈕的JDialog
- 29. startFromScratch正在刪除工作簿的關閉(x)按鈕
- 30. SDK的主屏幕部分是否爲「X」刪除按鈕?
我已經看到了一些應用程序,顯示另一個對話框,如果按下關閉按鈕告訴您按其他按鈕中的一個來代替。天才! – 2009-06-02 22:56:31