2017-02-13 22 views
1

私が作成したGUIに問題があります。私は、特定のオブジェクト(つまり、テキストフィールド上にマウスカーソルを置いたときにボタンやテキストカーソルにカーソルを置いたときに手を動かすカーソル)を乗り越えるときに、さまざまなカーソルの変更を設定しようとしています。しかし、適切なコードは機能しません。これらのオブジェクトは、内にネストされたパネルであるため、カーソルが変更されない理由があること、しかし、私が知っているオブジェクトをロールオーバーするとマウスカーソルが変わらない

classArmBtn.setCursor(new Cursor(Cursor.HAND_CURSOR)); 

そして

classAlcBtn.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 

:私は、次のコードの両方を試してみましたJSplitPane。ただし、JSplitPaneはサイズ変更を許可しないため無効になっています。メソッドをオーバーライドしてこれらのカーソルを変更できるようにする方法はありますか?ありがとう!

+0

通常、MouseEvent.mouseEnteredにカーソルを設定します。それはあなたがsetCursorを呼び出す場所ですか? – ControlAltDel

+0

@ControlAltDelよく、それを上書きしない限り、MouseEvent.mouseEnteredで設定する必要はありませんか?私は各コンポーネントのプロパティを設定していたsetLayout()メソッドの中でsetCursorを呼び出すだけでした。 –

答えて

1

JSplitPaneは、サイズ変更を許可しないため無効になっています。次にコンポーネントが無効になっていないので、カーソルを設定することができる

BasicSplitPaneUI ui = (BasicSplitPaneUI)splitPane.getUI(); 
BasicSplitPaneDivider divider = ui.getDivider(); 
divider.setEnabled(false); 

for (MouseListener ml: divider.getListeners(MouseListener.class)) 
    divider.removeMouseListener(ml); 

:サイズ変更を無効にする

別の方法は、分周器を無効にしてスプリットペイン分割器からのMouseListenerを除去することです。

+0

これは魅力のように働いた、ありがとう!ちなみに、テキストフィールド内の点滅するテキストカーソルの色をどのように変更することができますか? –

関連する問題