gpt4 book ai didi

java - 如何在Jtable中洗牌

转载 作者:行者123 更新时间:2023-11-30 08:35:57 25 4
gpt4 key购买 nike

我有一个 JTable,其中包含 TableModel(我所有的数据)。 JTable 有多个行和列。我需要随机洗牌。我知道我可以用

Collections.shuffle(some list from TableModel);

但我不知道如何从具有 TableModel 的现有 JTable 中获取列表。

根据一些人的建议,我尝试了这个

RowSorter<? extends TableModel> sorter = mDocListTable.getRowSorter();
ArrayList<RowSorter.SortKey> list = new ArrayList<RowSorter.SortKey>();

list.add(new RowSorter.SortKey(0, SortOrder.DESCENDING));

Collections.shuffle(list);
sorter.setSortKeys(list);

但没用。

最佳答案

这样的东西能行吗?

DefaultTableModel model = (DefaultTableModel) table.getModel();
model.getDataVector().sort((Object o1, Object o2) -> Math.random() > 0.5 ? -1 : 1);
model.fireTableDataChanged();

编辑:

对于 Java-7 并且由于 .sort() 直到 Java-8 才实现,第二个(可能更具可读性)选项可以是:

DefaultTableModel model = (DefaultTableModel) table.getModel();
Collections.shuffle(model.getDataVector());
model.fireTableDataChanged();

这无法恢复。

关于java - 如何在Jtable中洗牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950501/

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