gpt4 book ai didi

java - 如何防止单个列在 JTable 中被重新排序?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:07 24 4
gpt4 key购买 nike

我有一个 JTable,我需要能够对列重新排序。但是我希望第一列不能重新排序。我使用以下方法启用重新排序:

table.getTableHeader().setReorderingAllowed(true);

现在可以重新排序列,包括我不需要的第一列。有没有办法锁定第一列?

我见过一些使用两个表的解决方案,第一列位于单独的表中,但也许有更好/更简单的方法。

最佳答案

这是我用来防止第一列被重新排序的解决方案

private int columnValue = -1; 
private int columnNewValue = -1;


tblResults.getColumnModel().addColumnModelListener(new TableColumnModelListener()
{
public void columnAdded(TableColumnModelEvent e) {}

public void columnMarginChanged(ChangeEvent e) {}

public void columnMoved(TableColumnModelEvent e)
{
if (columnValue == -1)
columnValue = e.getFromIndex();

columnNewValue = e.getToIndex();
}

public void columnRemoved(TableColumnModelEvent e) {}

public void columnSelectionChanged(ListSelectionEvent e) {}
});

tblResults.getTableHeader().addMouseListener(new MouseAdapter()
{
@Override
public void mouseReleased(MouseEvent e)
{
if (columnValue != -1 && (columnValue == 0 || columnNewValue == 0))
tblResults.moveColumn(columnNewValue, columnValue);

columnValue = -1;
columnNewValue = -1;
}
});

干杯,

关于java - 如何防止单个列在 JTable 中被重新排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com