![](/img/trans.png)
[英]How do I create a Java Swing JTable with header as first column, not as first row?
[英]How do I prevent a Java Swing JTable column from being sorted when the user click on the header?
我有一個包含幾列的JTable。 我想使某些列無法排序。 我該怎么做? 我一直使用Java 1.4,因此不能使用TableRowSorter,因為直到1.6才引入TableRowSorter。
僅將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) {
那么第二列是不可排序的
將JTable上的rowSorter設置為null。 參見http://download.java.net/jdk7/archive/b123/docs/api/javax/swing/JTable.html#setRowSorter(javax.swing.RowSorter )
如果要排序而不是其他,則必須實現一個偵聽器。 我用過這樣的東西:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.