2009-04-07 15 views
5

私は編集不可能なセルのセットを持つJTableを持っていて、特定の列のすべてのセルに、マウスがその上にマウスカーソルを置いている間に異なるマウスカーソルを表示します。 私は既にカスタムレンダラーを使用しており、レンダラーコンポーネント上のカーソルを設定することは機能していないようです(ツールチップの場合と同じです)。特定のJTableセルのマウスカーソルを設定する

編集者にとってはうまくいくようです。

セルが編集されていないとき、または何か不足しているときにJTableでこれを行うことはできませんか?

答えて

7

MouseMotionListenerをJTableに追加し、次にmouseMoved()でJTableのcolumnAtPoint()を使用している列を特定し、その後に特定の列の場合はJTableでsetCursor()を指定します。ここで

+0

これは、我々はすでに何をしていたし、それが動作するので、私は答えを受け入れるだろう。私はもう少し良いものを見つけることを望んでいた。 –

+0

ええ、これはもっと簡単です。 :D – gumuruh

+2

これは、JTableがJTabbedPaneのパネルに含まれている場合**を除いて**うまく動作します。その場合、JTableに設定されたCursorは効果がありません。これはSwing(Java SE 1.6.0_27)のバグです。 –

0

は、JTableの特定の列にカーソルを変更する一つの方法である:

if(tblExamHistoryAll.columnAtPoint(evt.getPoint())==5) 
{ 
    setCursor(Cursor.HAND_CURSOR); 
} 
else 
{ 
    setCursor(0); 
} 
関連する問題