使用 DefaultDesktopManager 的 JInternalFrame 图标化异常
Exception in the iconization of JInternalFrame with DefaultDesktopManager
我正在尝试使用 DefaultDesktopManager(或它的子 class)来控制从桌面面板移出 JInternalFrames。我可以防止将框架移出其桌面窗格,但是,当我最小化内部框架时,我得到:
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(也就是说,我注释掉上面第二行),我可以无一例外地最小化一个内部框架。
注意:这个问题来自另一个 Whosebug 问题的答案:
Preventing JInternalFrame from being moved out of a JDesktopPane
在 Java 1.8.0 中,只有在我使用 Mac OS X 时才会出现此问题。当 "Mac OS X" 外观和感觉是未使用。这段代码为我解决了这个问题:
try
{ UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); }
catch (Exception e)
{ e.printStackTrace(); }
我正在尝试使用 DefaultDesktopManager(或它的子 class)来控制从桌面面板移出 JInternalFrames。我可以防止将框架移出其桌面窗格,但是,当我最小化内部框架时,我得到:
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(也就是说,我注释掉上面第二行),我可以无一例外地最小化一个内部框架。
注意:这个问题来自另一个 Whosebug 问题的答案:
Preventing JInternalFrame from being moved out of a JDesktopPane
在 Java 1.8.0 中,只有在我使用 Mac OS X 时才会出现此问题。当 "Mac OS X" 外观和感觉是未使用。这段代码为我解决了这个问题:
try
{ UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); }
catch (Exception e)
{ e.printStackTrace(); }