2011-01-07 16 views
1

goto関数を実装しようとしています。私は数千の行を持っているJTableを持っており、指定された行番号にジャンプすることができるようにしたい。JTable Goto Row

else if (BUTTON_GOTO.equals(command)) 
{ 
    int gotoLine = Integer.valueOf(gotoField.getText());    
    logTable.setRowSelectionInterval(gotoLine, gotoLine); 
} 

上記のコードは、私が探している行を強調表示しますが、ジャンプしません。誰もこれを行う方法を知っていますか?

おかげで、アプリケーションが必要な行の短い数行をジャンプところ、以下のソリューションを使用して、バグがある

EDIT。詳細については以下を参照してください:

Stack Overflow - Java JTable Goto Row Bug

+1

実際に 'Integer'オブジェクトが必要な場合を除き、' Integer.valueOf() 'の代わりに' Integer.parseInt() 'を使うべきです。ここでは、オブジェクトを作成してすぐにそれをプリミティブ 'int'に変換します。 –

+0

チップのおかげで。新しいjava: – linsek

答えて

2

試行:

logTable.scrollRectToVisible(logTable.getCellRect(gotoLine, 0, true)); 

getCellRect()は、所与の行のセルと列の境界たRectangleを返し、scrollRectToVisible()テーブルの親に伝える(これべきJScrollPaneを使用している場合はJViewPortになります)。

+0

が動作します。どうもありがとう! – linsek