0

ログファイルの内容を表示していJTableますが、最初の列はミリ秒単位のタイムスタンプです(例:10:3​​1:54.531)。データはすでにこの列で並べ替えられています。ユーザーが興味のあるタイムスタンプまでスクロールできるようにしたいと思います。

これが私がやりたいことのJavaスニペットです:

String myTimestamp = "10:31:54.531";
Integer myRowIndex = getRowIndexFromStringTimestamp(myTimestamp);
myJTable.getSelectionModel().setSelectionInterval(myRowIndex, myRowIndex);
myJTable.scrollRectToVisible(new Rectangle(myJTable.getCellRect(myRowIndex, 0, true)));

しかし、どのように実装するのgetRowIndexFromStringTimestampですか?

ありがとうございました

4

2 に答える 2

3
  • 代わりにフィルタリングを使用すると思います。ループして検索しXxxTableModelたりJTables view、目的の値を比較したりするよりも簡単です。

  • 列に含まれる値の(java.util.Date)に適切なColumnClassを設定する必要がありますDate(DateTime

  • それ以外の場合は、値を比較して、XxxTableModelまたはをループして検索する必要がありますJTables view

于 2013-01-21T18:51:08.220 に答える
3

テーブルへの参照が必要であり、組み合わせを使用しますJTable#getRowCountJTable#getValueAt

int matchIndex = -1;
for (int rowIndex = 0; rowIndex < myJTable.getRowCount(); index++) {
    Object value = myJTable.getValueAt(rowIndex, colIndex);
    if (value.equals(timestamp)) { // Or what ever comparison you need..
        matchIndex = rowIndex;
        break;
    } 
}
return matchIndex;

これに伴う問題は、データが増えると遅くなることです。

于 2013-01-21T19:56:37.270 に答える