现在我的BooleanJTable值显示为JCheckBoxes.这通常会很好,但我想将它们显示为替代字符串或图像.我可以让它们显示为真/假,但我想将它们显示为勾选标记(✔)如果为真,如果为假则不显示.可能是一个图像,但让我们先做一个字符串......
puuuuuuf,我开始喜欢摇摆:)我正在尝试编写一个cellRenderer来自定义渲染除第一行和第一列之外的所有单元格.所以我写了以下内容:
public class CustomTableCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column);
if(row >0&&column>0){
cell.setBackground(Color.GREEN);
}
return cell;
}
}
Run Code Online (Sandbox Code Playgroud)
并将渲染器设置如下:
scheduleTable.setDefaultRenderer(Object.class, new CustomTableCellRenderer());
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,这种方法将渲染器应用于所有单元格.所以他们都是绿色的.如果我做错了什么,你能帮帮我吗?
提前致谢!
scheduleTable = new JTable() {
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component comp = super.prepareRenderer(renderer, row, column);
int modelRow = convertRowIndexToModel(row);
int modelColumn = convertColumnIndexToModel(column);
if (modelColumn != 0 && …Run Code Online (Sandbox Code Playgroud)