gpt4 book ai didi

Java JComboBox 图标

转载 作者:行者123 更新时间:2023-12-01 22:24:33 26 4
gpt4 key购买 nike

在 JTable 中显示数据。一列用作字段复选框。问题是在显示ChceckBox 中而不是出现图标true/false。我该如何解决这个问题?

添加数据:

private DefaultTableModel headermodel = new DefaultTableModel();
private JScrollPane scrollHeader = new JScrollPane();
private JTable headerTable = new JTable();

public void loadHead(){


header = model.getHead();

int ids=0;
int id=1;

for(String head: header) {
headermodel.addRow(new Object[]{id,head});
headerMap.put(ids,head);
id++;
ids++;
count++;
}
header.clear();

}

并在JTable中显示数据:

    headerTable = new JTable(headermodel);
headermodel.addColumn("Lp.");
headermodel.addColumn("Column Name");
headermodel.addColumn("Constraint");
headermodel.addColumn("Sum");
scrollHeader = new JScrollPane(headerTable);

TableColumnModel tcm = headerTable.getColumnModel();

tcm.getColumn(2).setCellEditor(new DefaultCellEditor(new JCheckBox()));
tcm.getColumn(3).setCellEditor(new DefaultCellEditor(new JCheckBox()));
tcm.getColumn(3).setCellRenderer(headerTable.getDefaultRenderer(boolean.class));

add(scrollHeader);

enter image description here

最佳答案

模型的 getColumnClass(int columnIndex) 方法应返回相应列索引的 Boolean.class ,以便渲染器知道为该列渲染复选框。例如,...

DefaultTableModel headermodel = new DefaultTableModel(){

@Override
public Class<?> getColumnClass(int columnNumber) {
if (columnNumber == 2 || columnNumber == 3) {
return Boolean.class;
} else {
return super.getColumnClass(columnNumber);
}
}
}

您不必为此设置这些列的单元格渲染器,因为默认单元格渲染器将适本地处理 Boolean.class

关于Java JComboBox 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034206/

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