如何禁用(或隐藏)JFrame上的closures(x)button?

我有一个窗口(从JFrame派生),我想在某些不可中断的操作期间禁用closuresbutton。 我知道我可以通过调用使button不做任何事情(或调用WindowListener中的处理程序)

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 

但我想在视觉上清楚说明点击它是没有意义的。

如果我理解正确, 这个错误报告表明这是不可能的。

这可能是最好的你会得到:

 setUndecorated(true); getRootPane().setWindowDecorationStyle(JRootPane.NONE); 

这将删除整个标题栏,java没有真正指定一种方法来删除标题栏的单个组件

编辑:

可能有办法,看看这些线程:

  • 链接1
  • 链接2

对于那些比2008年晚的人来说,已经有了一个变化,可以做到这一点。 看到这个链接

从底部的第二个反应显示如何通过名称来完成。

请试试这个

 frame.addWindowlistner(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); } } }); 

这将帮助您:

 frame.setDefaultCloseOperation(0);