1

一度に 1 行しか表示しない JTable を作成しようとしています。[次へ/前へ] を押すと、押したボタンに応じて、表に次の行または前の行が表示されます。Next/Previous がない場合、JTable は最初/最後の要素を表示します。

一度に 1 行だけを表示するコード:

tableModel = new DefaultTableModel(data, columnNames);
tableModel.setRowCount(0); //If I remove this, the things I add ends up att the 2nd line.
tableModel.addTableModelListener(resultTable);
resultTable = new JTable(tableModel);
scroll = new JScrollPane(resultTable, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

final int rows = 1;
Dimension d = resultTable.getPreferredSize();
resultTable.setPreferredSize(new Dimension(d.width,resultTable.getRowHeight()*rows));

[次へ] ボタンのコード (機能しない、どうすればよいでしょうか? 前と同じ要素を表示します):

int height = resultTable.getRowHeight()*(rows-1);
JScrollBar bar = scroll.getVerticalScrollBar();
bar.setValue( bar.getValue()+height);

前へボタンのコード (動作しない、上記と同じ、何も起こらない/変化しない)

int height = resultTable.getRowHeight()*(rows-1);
JScrollBar bar = scroll.getVerticalScrollBar();
bar.setValue(bar.getValue()-height);

どうする?いくつかの助けをいただければ幸いです。これを永遠に解決しようとしてきました。

編集: ここからコードをたどろうとしています: JTable 行の制限ですが、それを機能させることはできません..10 行ではなく 1 行のみを表示したいのですが。

4

1 に答える 1

0

上記から、行数を指定してテーブル内の単一の行を取得します

 final int rows = 2;

または、行ヘッダーのあるテーブルを試すこともできます。ここにサンプルがあります http://www.java2s.com/Code/Java/Swing-Components/TableRowHeaderExample.htm

于 2012-10-16T11:27:58.123 に答える