gpt4 book ai didi

java - 更改 JXTable 中的当前选择不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 07:55:32 25 4
gpt4 key购买 nike

我有一个JXTable,用户需要在其中引入数据,然后保存它。唯一的问题是,用户必须在保存之前取消选择最后编辑的单元格。如果不这样做,则不会保存该单元格的数据。

我唯一想到的就是在保存之前自动更改当前选择。这是我尝试过的:

table.getSelectionModel().setSelectionInterval(0, 0);
table.getColumnModel().getSelectionModel().setSelectionInterval(0, 0);

或者

table.getSelectionModel().setLeadSelectionIndex(0);
table.getColumnModel().getSelectionModel().setLeadSelectionIndex(0);

这两种方法似乎都不起作用,但这是我发现的唯一两种可以做到这一点的方法。

任何人都可以告诉我如何正确执行此操作或提出一种替代方案来让它保存最后一个单元格中的数据吗?

最佳答案

我假设用户在希望保存数据时单击另一个组件( JButton )。如果您有引用JXTable当该事件发生时,您可以在其中添加以下代码:

if (table.isEditing()) {
table.getCellEditor().stopCellEditing();
}

stopCellEditing()应保存模型的状态并允许您保存所有内容,包括当前选择/编辑的单元格。

<小时/>

编辑:如 kleopatra指出,处理此问题的默认(也是更好!)方法是通过 JTable 组件的 client 属性:

table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

对于JXTable,这应该已经设置,这表明您的 UI 处理保存功能的工作方式不包括将焦点从表格移开。因此,本质上,当您的“保存”事件被触发时,您最好改变焦点。

关于java - 更改 JXTable 中的当前选择不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686641/

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