科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件JTable中CheckBox单元格背景色渲染

JTable中CheckBox单元格背景色渲染

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

JTable中CheckBox单元格背景色渲染,这次在项目中,碰到对CheckBox单元格进行背景色渲染,着实让我煞费了一番心思。以下是解决方法,与需要的同学共享。

来源:中国IT实验室 2013年2月22日

关键字: java

  • 评论
  • 分享微博
  • 分享邮件

ZDNet至顶网软件频道 混迹Java很多年,然而在碰到JTABLE操作的时候,还是有点望而生畏。这次在项目中,碰到对CheckBox单元格进行背景色渲染,着实让我煞费了一番心思。以下是解决方法,与需要的同学共享。

[java]

for (int i = 0; i < table.getColumnCount(); i++) {

// 第十二列是预警标志位,用CheckBox控件显示

if (i == 11) {

table.getColumn(table.getModel()。getColumnName(i))。setCellRenderer(

new TableCellRenderer() {

private JCheckBox checkBox = new JCheckBox();

@Override

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

if (value != null) {

checkBox.setSelected(Boolean.valueOf(value.toString()));

checkBox.setHorizontalAlignment(JCheckBox.CENTER);

if (isSelected) {

// 默认选中颜色

checkBox.setBackground(new Color(10, 36, 106));

} else {

String warn_Flag = (String) table.getModel()。getValueAt(row, 13);

if ("1".equals(warn_Flag)) {

checkBox.setBackground(Color.RED);

} else {

checkBox.setBackground(Color.white);

}

}

}

return checkBox;

}

});

} else {

table.getColumn(table.getModel()。getColumnName(i))。setCellRenderer(

new DefaultTableCellRenderer() {

@Override

public Component getTableCellRendererComponent(JTable table,

Object value, boolean isSelected, boolean hasFocus,

int row, int column) {

String warn_Flag = (String) table.getModel()。getValueAt(row, 13);

if ("1".equals(warn_Flag)) {

setBackground(Color.RED);

} else {

setBackground(Color.white);

}

return super.getTableCellRendererComponent(table, value,

isSelected, hasFocus, row, column);

});

<span style="white-space:pre"> </span>}}

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章