gpt4 book ai didi

java - 当每个单元格都不可编辑时使 JTable 行可选择

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:45 24 4
gpt4 key购买 nike

我有一个表来显示值,在这个表中用户可以选择一行,但不能改变它的内容。我的代码是:

    JTable tablaCurvas1 = new JTable();
TableCellRenderer tableRender = new SubtractTableRenderer();
tablaCurvas1.setDefaultRenderer(Object.class, tableRender);
tablaCurvas1.setModel(new DefaultTableModel(rowData, columnNames){
private static final long serialVersionUID = 1L;
@Override
public boolean isCellEditable(int row, int column) {
return false; //So I make every cell non-editable
}

});

JScrollPane scrollPane = new JScrollPane(tablaCurvas1);
tablaCurvas1.setFillsViewportHeight(true);
tablaCurvas1.setPreferredScrollableViewportSize(new Dimension(200,100));
pane.add(scrollPane,c);

但是现在,当我点击它们时,表格行不会被选中。我该如何解决这个问题?

最佳答案

选择行的能力与编辑给定行中单元格的能力无关。

问题是您的 SubractTableRenderer 负责突出显示。您需要在渲染器中编写类似以下的代码:

@Override
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

// add custom rendering code

if (isSelected)
setBackground( table.getSelectionBackground() );
else
setBackground( table.getBackground() );

return this;
}

关于java - 当每个单元格都不可编辑时使 JTable 行可选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7647771/

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