gpt4 book ai didi

java:如何只选择一个jtable中的一个单元格而不是整行

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:40:43 25 4
gpt4 key购买 nike

在 jTable 中,我希望当用户单击单元格时,将这句话打印在屏幕上:

I am cell in row X and column Y

其中 x 和 Y 是单击单元格的行和列。但是我得到的是:例如,当我单击第 1 行和第 4 列中的单元格时我得到以下信息:

I am cell in row 1 and column 0
I am cell in row 1 and column 1
I am cell in row 1 and column 2
....
I am cell in row 1 and column N ( N = number of columns)

即整行都被选中。

这是代码:

public class CustomTableCellRenderer extends DefaultTableCellRenderer{

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{

Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

if(isSelected) System.out.println("I am cell in row "+row+" and column "+column);



return cell;

}

感谢您的帮助。

最佳答案

您不应该为此使用单元格渲染器。

在您的表格上启用单元格选择(使用setCellSelectionEnabled(true)),然后获取表格的选择模型(使用getSelectionModel()),并添加一个监听器在这个选择模型上。每次触发事件时,使用 getSelectedRow()getSelectedColumn() 来了解哪个单元格被选中。

请注意,这将为您提供选定的单元格,可以使用鼠标或键盘对其进行修改。如果您只想知道鼠标点击的位置,请查看 KDM 的回答。

关于java:如何只选择一个jtable中的一个单元格而不是整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6451200/

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