2

デスクトップ パネルからの JInternalFrames からの移動を制御するために、DefaultDesktopManager (またはこのサブクラス) を使用しようとしています。フレームがデスクトップ ペインから移動されるのを防ぐことはできますが、内部フレームを最小化すると、次のようになります。

 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 を使用しない場合 (つまり、上記の 2 行目にコメントを付ける) は、例外なく内部フレームを最小化できます。

注: この質問は、別の Stackoverflow の質問の回答から生じます。

JInternalFrame が JDesktopPane の外に移動されないようにする

4

1 に答える 1

1

Java 1.8.0 では、Mac OS X を使用している場合にのみ問題が発生します。「Mac OS X」のルック アンド フィールを使用しないと、この問題はなくなります。このコードは私の問題を解決しました:

try  
  { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); }
catch (Exception e)
  { e.printStackTrace(); }
于 2016-03-05T21:21:45.553 に答える