gpt4 book ai didi

java - JTable setRowSelectionInterval 对 JButton 没有影响

转载 作者:行者123 更新时间:2023-11-29 03:12:46 24 4
gpt4 key购买 nike

使用 JTable,我的表模型 setValueAt() 方法在某些情况下使用 setRowSelectionInterval() 和 setColumnSelectionInterval() 将选择移动到下一行。当它从(默认)单元格编辑器(通过用户在单元格中键入并点击选项卡)调用时,代码起作用:选择所需的下一个单元格(下一行的第一个单元格)。

但是,如果用户使用 Return 而不是 Tab 来提交编辑,则不会发生选择;而是选择了下面的单元格。我没问题。

我还有一个 JButton 来清除一行。按钮的 Action 函数为所需的单元格调用模型的 setValueAt() 函数。不幸的是,setRowSelectionInterval() 和 setColumnSelectionInterval() 方法没有明显效果;相反,没有选择任何单元格。

我已经尝试过 table.requestFocusInWindow() 和 table.getParent().requestFocusInWindow(),以及 table.changeSelection(row, 0, false, false),但都没有明显效果。

在我着手构建 SSCCE 之前,我是否遗漏了什么基本知识?

如果重要的话,这里是容器层次结构:

parent JPanel
button rows JPanel
button row 1 JPanel
button row 2 JPanel
table JScrollpane
JTable

有问题的按钮在按钮行 1 中。

谢谢!

最佳答案

也许你可以使用 Table Cell Listener收听对表格的编辑。它监听 JTable 编辑器所做的实际更改。

然后在提供的 Action 中,您可以选择适当的行。您可能需要将 Action 代码包装在 SwingUtilities.invokeLater(...) 中,以确保代码在表完全完成编辑后执行。

关于java - JTable setRowSelectionInterval 对 JButton 没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28420592/

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