2009-07-04 6 views
1

JInternalFrameをデコレートしようとしています。つまり、次のコードを使用してデフォルトのタイトルバーを削除します。MacOSでJInternalFrameを宣言しない

BasicInternalFrameUI ui = (BasicInternalFrameUI)internalFrame.getUI(); 
ui.getNorthPane().setPrefrredSize(new Dimension(0,0)); 

私はWindows上で動作しますが、2行目は、任意のアイデアなぜ、どのようにラウンドを取得するためにMacOSの

にNullPointerExceptionがスローされますか?

答えて

0

Macでは、JInternalFrameにはノースペインがありません。 Mac OSプラットフォームでは実行しないでください。

0

私はMacを使用していないため、何が問題の原因かわかりません。

タイトルバーのないJInternalFrameは、ドラッグする能力を失います。 JPanelをデスクトップに追加するだけで、同じ目標を達成できるはずです。パネルの境界を設定する必要があります。また、パネル上の内部フレームカスタムの境界線のいずれかを使用する場合があります

UIManager.getBorder("InternalFrame.paletteBorder"); 
UIManager.getBorder("InternalFrame.optionDialogBorder"); 

それとも別のオプションを使用することです:

internalFrame.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE); 

これは、その小さなパレットでタイトルバーを交換しますボタンやタイトルなしで内部フレームをドラッグするのに使用できます。

+0

:-(クロスプラットフォームについてそんなに

// only remove the northpanel for none Mac OS if(!(System.getProperty("os.name").startsWith("Mac OS"))){ BasicInternalFrameUI ui = (BasicInternalFrameUI) getUI(); ui.getNorthPane().setPrefrredSize(new Dimension(0,0)); } 

「タイトルバーのないA JInternalFrameがドラッグする能力を失う」 - それはまだサイズを変更することができます;)私はにカスタムコードを持っている –

+0

@ivanサイズ変更とウィンドウのドラッグを処理します。 – n002213f

関連する問題