我有一个窗口(从JFrame派生),我想在某些不可中断的操作中禁用关闭按钮。我知道我可以通过调用
使按钮不做任何事情(或在WindowListener中调用处理程序)setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
但我想直观地说明点击它是没有意义的。
答案 0 :(得分:19)
这可能是你得到的最好的:
setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.NONE);
这将删除整个标题栏,java并没有真正指定删除标题栏的各个组件的方法
编辑:
可能有办法,看看这些主题:
答案 1 :(得分:10)
如果我理解正确,this bug report表示目前无法做到这一点。
答案 2 :(得分:5)
对于那些晚于2008年的人来说,有一个变化可以做到这一点。见this link
底部的第二个回复显示了如何按名称进行。
答案 3 :(得分:2)
这将对您有所帮助:
frame.setDefaultCloseOperation(0);
答案 4 :(得分:0)
请试试这个
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
e.getWindow().setVisible(false);
try {
wait();
} catch (InterruptedException ex) {
Logger.getLogger(WindowsActions.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
答案 5 :(得分:0)
要使其简单消失,请尝试以下操作:
setUndecorated(true);