gpt4 book ai didi

java - 编辑单元格时切换值

转载 作者:行者123 更新时间:2023-11-30 05:11:14 24 4
gpt4 key购买 nike

我有一个 JTable,它使用自定义 TableModel 来显示一系列对象实例。 getValueAt(int row, int column) 内部有一个 switch case,用于根据给定属性返回值(见下文)。一个 return 语句涉及将值 1/0 作为 true/false 返回。

有没有办法可以修改此 TableModel,以便在编辑单元格时显示 1/0?

public Object getValueAt(int row, int column) {
User user = (User)dataVector.get(row);
switch (column) {
case ID_INDEX:
return user.getId();
case USERNAME_INDEX:
return user.getUserName();
case PASSWORD_INDEX:
return "****";
case ACTIVATED_INDEX:
return (user.getActivated())?"true":"false";
default:
return new Object();
}
}

最佳答案

default renderer and editor for Boolean是一个JCheckBox。考虑使用

case ACTIVATED_INDEX:
return Boolean.valueOf(user.getActivated());

或者,

case ACTIVATED_INDEX:
return (user.getActivated())?"1":"0";

附录:例如,DefaultTableModel不会覆盖 getColumnClass(),并且 AbstractTableModel 仅返回 Object.class。您的 TableModel 应相应地覆盖 getColumnClass():

DefaultTableModel dtm = new DefaultTableModel() {

@Override
public Class<?> getColumnClass(int col) {
return getValueAt(0, col).getClass();
}
};
// add some data
JTable table = new JTable(dtm);

关于java - 编辑单元格时切换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305145/

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