- PR -

JTableの表示の仕方

1
投稿者投稿内容
会議室デビュー日: 2005/05/07
投稿数: 12
投稿日時: 2005-05-30 00:16
こんばんは。
JTable table = new JTable();
JScrollPane sp = new JScrollPane();
sp.getViewport().setView(table);
という感じでテーブルを表示しています。
テーブルのカラム数が多く、セルをタブ移動させていくと、
フレームの右側に常にフォーカスを持ったセルが来るようになりますが、
フォーカスを持ったセルがフレームの中心あたりに表示されるようにしたいです。
説明が下手で申し訳ございません。
フォーカスを持ったセルに合わせて、スクロールが自動的にされるみたいなイメージです。
宜しくお願いします。
nekoyama
ベテラン
会議室デビュー日: 2005/03/12
投稿数: 71
投稿日時: 2005-05-30 01:02
JTableのcolumnSelectionChanged(ListSelectionEvent e)と
JComponentのscrollRectToVisible(Rectangle aRect)を使えば実現できますよ。
会議室デビュー日: 2005/05/07
投稿数: 12
投稿日時: 2005-05-30 11:01
レスありがとうございます。
columnSelectionChangedメソッドの中で
コード:
int col = table.getSelectedColumn();
Rectangle cellRect = table.getCellRect(1,col,false);
if(cellRect != null){
    table.scrollRectToVisible(cellRect);
}


という感じコーディングしましたが、だめでした。
使用方法が間違っているでしょうか?
scrollRectToVisibleメソッドは呼ばれていることは確認しています。
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2005-05-30 11:09
そのメソッドは、引数に与えたRectangleがViewportに表示されるようにするメソッド
です。でもって、実際の動作は、選択した行がViewportに表示されるために最小の移動
量でViewを移動しようとするのではないでしょうか。

ここで問題です。あなたの望みの動作にするためには、どのようなRectangleをその
メソッドの引数に与えればよいでしょうか。
会議室デビュー日: 2005/05/07
投稿数: 12
投稿日時: 2005-05-30 11:56

大きいカラムを表示させるようにすればいいのですね?
がんばってみます。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)