有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用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) 个答案

  1. # 1 楼答案

    在Java1.8.0中,这个问题只在我使用MacOSX时出现。当不使用“MacOSX”外观时,这个问题就消失了。此代码为我解决了问题:

    try  
      { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); }
    catch (Exception e)
      { e.printStackTrace(); }