使用DefaultDesktopManager对JInternalFrame进行图标化时出现java异常
我试图使用DefaultDesktopManager(或其子类)控制从桌面面板移出JinternalFrame。但是,当我最小化得到的内部框架时,我可以防止框架移出其桌面窗格:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.RepaintManager.getVolatileOffscreenBuffer(RepaintManager.java:965)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1398)
at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
...
代码如下所示:
JDesktopPan pane = new JDesktopPane();
pane.setDesktopManager(new DefaultDesktopManager());
如果我不使用DefaultDesktopManager(也就是说,我对上面的第二行进行注释),我可以毫无例外地最小化内部框架
注:此问题由另一个Stackoverflow问题的答案引出:
Preventing JInternalFrame from being moved out of a JDesktopPane
# 1 楼答案
在Java1.8.0中,这个问题只在我使用MacOSX时出现。当不使用“MacOSX”外观时,这个问题就消失了。此代码为我解决了问题: