複数の列を持つ JTable があります。一部の列をソート不可にしたかったのです。どうすればいいのですか?私はJava 1.4を使用して立ち往生しているため、1.6まで導入されなかったため、TableRowSorterを使用することはオプションではありません。
3252 次
3 に答える
5
RowSorter
目的の列のみに適用する
(たとえば、pseudo_code のみ、例としてすべてがハードコードされており、ColumnModel の列をオーバーライドする必要があります)
if (column >= 0 && column < getModelWrapper().getColumnCount()
&& isSortable(column)) {
と
if (column >= 0 && column <=1 /*getModelWrapper().getColumnCount()*/
&& isSortable(column)) {
のpublic void toggleSortOrder(int column) {
次に、2 番目の列はソートできません
- SSCCEがあなたの問題を実証したことを投稿してください。
于 2013-01-16T19:12:21.747 に答える
0
JTable の rowSorter を null に設定します。http://download.java.net/jdk7/archive/b123/docs/api/javax/swing/JTable.html#setRowSorter(javax.swing.RowSorter )を参照してください。
于 2013-01-16T19:02:01.997 に答える
0
一部を並べ替えたい場合は、リスナーを実装する必要があります。私はこのようなものを使用しました:
table.getTableHeader().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int col= table.getTableHeader().columnAtPoint(e.getPoint());
// column number col has been clicked -- sort if necessary,
// discard the event if sorting is not desired.
//
}
});
行をドラッグ アンド ドロップできるテーブルに注意してください。これを無効にすることができます
table.getTableHeader().setReorderingAllowed(false);
于 2013-01-16T19:08:58.283 に答える