0
  1. jinternal フレームのタイトル バーの左側のドロップダウン メニューのみを削除または非表示にし、タイトル バー全体を削除または非表示にしない方法。

  2. jdesktopペインでマウスホールドでjinternalフレームを移動しないように設定する方法。

私の質問をよりよく理解するために、以下のスナップショットを確認してください。

http://i49.tinypic.com/1zfned2.jpg

4

2 に答える 2

1

私の知る限り、唯一の方法は、内部フレームに独自の 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. すべてをテストしたわけではないので、追加のメソッドをオーバーライドする必要があるかもしれません。

于 2012-12-08T18:04:16.380 に答える
0

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);
        }

ありがとう

于 2012-12-11T06:22:16.140 に答える