为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据条件更改线条的颜色?

如何根据条件更改线条的颜色?

慕婉清6462132 2023-02-23 17:04:32
我的表看起来像这样,一切正常,一切正常)我需要如果满足条件 ARRIVAL = 0 或 DEPART = 0,则整行中的文本颜色为不同的颜色,例如红色或黑色,没关系,我不知道如何更改它,也许这很容易,我是新手)我还没有在其他问题中找到这个问题的答案 private void setTableSettingsReport() {    jTblReport.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);    jTblReport.setRowSelectionAllowed(true);    jTblReport.setAutoCreateRowSorter(true);    jTblReport.getTableHeader().setReorderingAllowed(false);    String[] dbColNames = new String[13];    dbColNames[0] = "ID";    dbColNames[1] = "Имя";    dbColNames[2] = "Фамилия";    dbColNames[3] = "Отчество";    dbColNames[4] = "Дата прихода с ";    dbColNames[5] = "Дата прихода до";    dbColNames[6] = "Прибытие";    dbColNames[7] = "Дата ухода с ";    dbColNames[8] = "Дата ухода до";    dbColNames[9] = "Убытие";    dbColNames[10] = "Причина опоздания";    dbColNames[11] = "Причина раннего ухода";    dbColNames[12] = "ID лица";    // dbColNames[8] = "Дата начала";    //  dbColNames[9] = "Дата окончания";        tm.setColumnIdentifiers(dbColNames);    jTblReport.setModel(tm);    jTblReport.setSelectionForeground(Color.white);}dbColNames[6] = "Прибытие"; dbColNames[9] = "Убытие"; 这些是相同的字段,具体取决于您需要更改整条线的颜色
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您需要为此 JTable 设置自己的单元格渲染器(我假设您使用的是 JTable)。


public class MyCellRenderer extends DefaultTableCellRenderer{

private int columNum = 0;


public MyCellRenderer(int columNum) {

    // TODO Auto-generated constructor stub

    this.columNum = columNum;

}


@Override

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,

        int row, int column) {

    // TODO Auto-generated method stub

    Object object = table.getValueAt(row, this.columNum);


    if(object.equals("yourValue")) {

        setBackground(Color.RED);

    }

    return this;

}

}


并且您需要在创建后立即将此渲染器设置为您的 jtable。


jTabReport.setDefaultRenderer(Object.class, new MyCellRenderer(3));

为此,您创建一个这样的类并从 DefaultTableCellRenderer 扩展并覆盖 getTableCellRendererComponent。构造函数获得了存储“arival”信息的列号。对于行中的每个单元格,您检查指定的列是否包含 arival = 0(这必须始终是相同的列)。如果是这样设置背景。“yourValue”只是一个例子。


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信