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

我的表看起来像这样,一切正常,一切正常)我需要如果满足条件 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] = "Убытие"; 这些是相同的字段,具体取决于您需要更改整条线的颜色


慕婉清6462132
浏览 67回答 1
1回答

杨__羊羊

您需要为此 JTable 设置自己的单元格渲染器(我假设您使用的是 JTable)。public class MyCellRenderer extends DefaultTableCellRenderer{private int columNum = 0;public MyCellRenderer(int columNum) {    // TODO Auto-generated constructor stub    this.columNum = columNum;}@Overridepublic 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”只是一个例子。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java