添加排序器后,是否可以在JTable上禁用手动排序?因此,我有一个JTable附加了以下排序器(初始化表时,基本上按第3列排序):
JTable jTable = new JTable();
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(jTable.getModel());
List<RowSorter.SortKey> sortKeys = new ArrayList<RowSorter.SortKey>();
sortKeys.add(new RowSorter.SortKey(3, SortOrder.DESCENDING));
sorter.setSortKeys(sortKeys);
jTable.setRowSorter(sorter);
效果很好,但是用户仍然可以单击表中的列标题,并按我要禁用的任何列进行排序。这可能吗?
您可以使用 TableRowSorter* 的 setSortable 方法,如下所示: *
sorter.setSortable(0, false);
使第0列不可排序。您可以根据需要在列上应用它。
我将行排序器应用于,Table检索太多记录,当用户单击表头对特殊字段进行排序时,会导致问题并应用程序崩溃。我想在表尚未完全加载时禁用排序!我该怎么办?
问题内容: 在我的JTable中不可见的列标题我已经创建了一个JPanel并将JTable添加到JPanel中。 问题答案: JTable的API指出: “请注意,如果希望在独立视图(JScrollPane外部)中使用JTable并希望显示标题,则可以使用getTableHeader()获取它并单独显示它。” 或者只是将表添加到滚动窗格,然后将滚动窗格添加到面板…
问题内容: 我声明我为: 但是我已经看到,在运行时可以用鼠标 拖动列 。如何禁用它? 问题答案: 应该可以完成这项工作,除非您是说用户可以调整列标题的大小。
问题内容: 我有以下代码实例化JTable:该表具有正确数量的行和列,但是在列顶部没有标题的迹象。 与其他制表代码相比,我看不到任何遗漏的步骤,但是必须缺少某些内容。 问题答案: 把你的JTable里面。试试这个:
问题内容: 我怎样才能有一个JTable的列和行都有标题? 像这样的东西: 谢谢 问题答案: 我认为你正在搜索RowTable
问题内容: 我应该如何禁用只一列拖动JTable?我想允许其他列拖动,但只允许第一列(索引为0)。谢谢。 问题答案: 您应该能够创建自己的(扩展DefaultTableColumnModel),并且应该重写为仅在允许拖动列时调用。