jinternal フレームのタイトル バーの左側のドロップダウン メニューのみを削除または非表示にし、タイトル バー全体を削除または非表示にしない方法。
jdesktopペインでマウスホールドでjinternalフレームを移動しないように設定する方法。
私の質問をよりよく理解するために、以下のスナップショットを確認してください。
jinternal フレームのタイトル バーの左側のドロップダウン メニューのみを削除または非表示にし、タイトル バー全体を削除または非表示にしない方法。
jdesktopペインでマウスホールドでjinternalフレームを移動しないように設定する方法。
私の質問をよりよく理解するために、以下のスナップショットを確認してください。
私の知る限り、唯一の方法は、内部フレームに独自の UI デリゲートを使用することです。UI デリゲートの仕組みを説明する記事については、http://today.java.net/pub/a/today/2007/02/22/how-to-write-custom-swing-component.htmlを参照してください。
Synth ルック アンド フィールを使用しているように見えるので、 のカスタム サブクラスのインスタンスを作成して返すためにメソッドSynthInternalFrameUI
をオーバーライドするの独自のサブクラスを簡単に作成できるはずです。createNorthPane()
SynthInternalFrameTitlePane
このカスタム タイトル ペインはaddSubComponents()
、menuButton
. すべてをテストしたわけではないので、追加のメソッドをオーバーライドする必要があるかもしれません。
1. jinternal フレームのタイトル バーの左側のドロップ ダウン メニューのみを削除または非表示にし、タイトル バー全体を削除または非表示にしない方法。ソースコード:
BasicInternalFrameUI ui = (BasicInternalFrameUI)internalFrame.getUI();
Container north = (Container)ui.getNorthPane();
north.remove(0);
north.validate();
north.repaint();
2. jdesktop ペインでマウスホールドで jinternal フレームを移動しないように設定する方法。ソースコード:
for(MouseListener listener : ((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame.getUI()).getNorthPane().getMouseListeners()){
((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame.getUI()).getNorthPane().removeMouseListener(listener);
}
ありがとう