- - PR -
JTableの可視領域の行データ
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-02 07:43
今、swingを使用したアプリケーションを組んでます。
JTableで、現在表示中のデータの行の一番上のindexを取得する方法 で悩んでいます。スクロールバーやペインのリサイズなどで、可視領域が 変化しても、常に表示中のデータ行のTOPのINDEXが取得したいのです。 どなたかご存知でしたら、教えていただけないでしょうか。 よろしくお願いいたします。 | ||||
|
投稿日時: 2005-01-02 16:42
workingmandeadさん、こんにちは。
bestな方法ではないかも知れませんが、 1.スクロールペインから垂直スクロールバーを取得 2.垂直スクロールバーから値を取得 3.その値を用いて適当な java.awt.Pointのオブジェクトを生成 4.JTable#rowAtPoint() にてロウを取得 っていうのはどうでしょうか? (使いやすくするためには更に工夫が必要。) [ メッセージ編集済み 編集者: Kissinger 編集日時 2005-01-02 16:43 ] | ||||
|
投稿日時: 2005-01-02 17:44
unibon です。こんにちわ。
情報が多いほうが良いかと思い、あまりたいしたことではありませんが、追加で書かせていただきます。 以下、試していませんが、たぶん getVisibleRect で得た値に対して、rowAtPoint するのが一番手近かな、と推測します。 #あと、ある行の一部だけ見えている状態も考慮する必要がありそうですね。 | ||||
|
投稿日時: 2005-01-02 18:18
unibonさん、ありがとうございます。
getVisibleRectの方が楽ですね。
rowHeightが一定なら rowHeight/2分下の座標で rowAtPoint()するとか? | ||||
|
投稿日時: 2005-01-03 05:22
>Kissinger様
>unibon様 ありがとうございました。 下記コードでうまくいきました。 Point point = new Point(); point.x = table.getVisibleRect().x; point.y = table.getVisibleRect().y; System.out.println(table.rowAtPoint(point)); |
1