2009-11-04 9 views
6

コンポーネントがあります。コンポーネントのツールヒントは、setToolTipText()メソッドによって設定されます。最初のモニターではすべて正常に動作します。フレームを2番目のモニタに移動すると、ツールチップがモニタの端に表示されます(ファットモニタ側)。これは、このコンポーネントのツールチップでのみ発生します。この問題は他のマシンにも見られます。それでも、私はVistaでのみテストしました。ツールのヒントがモニタの端に表示されます

これはなぜですか? これはSwingのバグですか? どうすれば修正できますか?

ツールチップテキストは、マウスカーソルの位置によって異なります。したがって、コードを編集してgetToolTipText(MouseEvent e)メソッドをオーバーライドすることがあります。コードを変更する前に、この問題の原因を知ることは本当にうれしいことです。

ありがとうございます。

答えて

7

Javaバグデータベースには、これに関連していると思われるいくつかのバグチケットがあります。別の重複として閉じられるで

Tooltip issue when using dual monitor (dual head) configuration.

JToolTip in JApplet will place tooltip in wrong monitor

Problem with Action button tooltips with some multiple monitor configurations

、一方が固定されると主張し、別の修正理解セットを有しています。

一部のユーザーによって投稿さ回避策の一つが、この作品

frame.pack(); 
frame.setLocation(location); 
frame.setLocation(new Point(0, 0)); 
frame.setLocation(location); 

kieron.wilkinson

理由は setLocation()は、最終的に順番に というメソッドを呼び出します Component.reshape()をcallesということですComponent.notifyNewBounds(boolean resized, boolean moved)、 はコンポーネント階層01を横断する各コンポーネントの境界を設定します。 デフォルトでは、これは「遅延的に」行われますが、 ウィンドウが移動する前に設定されていません。 が移動しました。上記のコードでは、 に設定されています。

これは、ツールチップがウィンドウをあるスクリーンから別のスクリーンにドラッグした後に正しく動作する理由です。

+0

ありがとうございます、私はあなたにこれを研究する仕事があると思います。 最初のテストの後にうまく動作するgetToolTipTextにコードを変更しようとしました。 –

+0

うーん、Google検索と3つのバグレポート+投稿を読んでください。次に答えを書いてください。問題ない – jitter

関連する問題