Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Swing的模型表中以红色显示数据_Java_Swing_Jtable - Fatal编程技术网

Java 在Swing的模型表中以红色显示数据

Java 在Swing的模型表中以红色显示数据,java,swing,jtable,Java,Swing,Jtable,如何在Swing中以红色显示模型表中的数据 表数据是正确的。若结果为“通过”,那个么它应该显示为绿色,而结果为“失败”,那个么在swing中的模型表中同样应该显示为红色 if (newResultSet.isEmpty() != true) { // System.out.println("final calculated summary records size : "+newResultSet.size()); for (int indx = 0;

如何在Swing中以红色显示模型表中的数据

表数据是正确的。若结果为“通过”,那个么它应该显示为绿色,而结果为“失败”,那个么在swing中的模型表中同样应该显示为红色

    if (newResultSet.isEmpty() != true) {
        // System.out.println("final calculated summary records size : "+newResultSet.size());

        for (int indx = 0; indx < newResultSet.size(); indx++) {
            Resultset rs = (Resultset) newResultSet.get(indx);

            Object[] row = new Object[6];

            row[0] = rs.getTestCaseNumber();
            row[1] = rs.getTestExecution();
            row[2] = rs.getTestCasePass();
            row[3] = rs.getTestCaseFail();
            row[4] = rs.getTestResult();
            row[5] = rs.getTestCaseDateTime();

            //System.out.println(row[0].toString()+" "+row[2].toString()+"  "+row[3].toString());

            model.addRow(row);
        }

    } else {
        JOptionPane.showMessageDialog(null, "NO DATA IS AVAILABLE TO DISPLAY", "Empty Message", JOptionPane.ERROR_MESSAGE);
    }
}

public void createAndShowGUI() {

    JFrame frame = new JFrame("Execution Report Table");
    frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);


    summarizeData();

    final JTable table = new JTable(model);

    JScrollPane scrollPane = new JScrollPane(table);
    frame.add(scrollPane);

    setOpaque(true); //content panes must be opaque

    frame.setLayout(new GridLayout(1, 0));

    frame.pack();
    frame.setVisible(true);
}
if(newResultSet.isEmpty()!=true){
//System.out.println(“最终计算的汇总记录大小:+newResultSet.size());
对于(int indx=0;indx

我希望在ModelTable中以红色和绿色行显示结果。

在表格的第4列创建一个CellRenderer。结果对象被传递到其方法中,在该方法中,您可以检查结果,并将标签或面板背景更改为绿色或红色

您的模型对象应该是ABstractTableModel类的实现

渲染器的外观应如下所示:

public class ColorRenderer extends JLabel implements TableCellRenderer {

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

        if(table.getValueAt(row, 4).equals("fail")) {
            setBackground(Color.RED);
        }else {
            setBackground(Color.GREEN)
        }

        return this;
    }
}

您需要将此渲染器添加到表中的所有列。

在表中的第4列创建一个CellRenderer。结果对象被传递到其方法中,在该方法中,您可以检查结果,并将标签或面板背景更改为绿色或红色

您的模型对象应该是ABstractTableModel类的实现

渲染器的外观应如下所示:

public class ColorRenderer extends JLabel implements TableCellRenderer {

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

        if(table.getValueAt(row, 4).equals("fail")) {
            setBackground(Color.RED);
        }else {
            setBackground(Color.GREEN)
        }

        return this;
    }
}

您需要将此渲染器添加到表中的所有列。

为了影响
JTable
中任何单元格的状态,您需要提供一个自定义
TableCellRenderer

有关更多详细信息,请参阅

现在。要简单地突出显示一行,需要做大量的工作

相反,您最好看一看提供了行高亮显示的内容


对于

为了影响
JTable
中任何单元格的状态,您需要提供一个自定义的
TableCellRenderer

有关更多详细信息,请参阅

现在。要简单地突出显示一行,需要做大量的工作

相反,您最好看一看提供了行高亮显示的内容

为了

若结果为“通过”,则应显示为绿色,而结果为“失败”,则应显示为红色

请参阅,以获取一个示例,该示例允许您根据其中一列中的值将整行渲染为特定颜色。这种方法不需要创建自定义渲染器

若结果为“通过”,则应显示为绿色,而结果为“失败”,则应显示为红色


请参阅,以获取一个示例,该示例允许您根据其中一列中的值将整行渲染为特定颜色。此方法在不创建自定义渲染器的情况下工作。

要更快获得更好的帮助,请发布一个。此模型对象在哪里?代码的开头不完整为了更快地获得更好的帮助,请发布一个。此模型对象在哪里?代码的开头不完整“您的模型对象应该是ABstractTableModel类的实现”。。。为什么?好吧,在这种情况下不太必要。是的,您可以将cellrenderer添加到表中,而无需定义其自己的模型。但是它很好,“您的模型对象应该是ABstractTableModel类的实现”。。。为什么?好吧,在这种情况下不太必要。是的,您可以将cellrenderer添加到表中,而无需定义其自己的模型。但是很好。