Java 如何根据文本的值更改行中文本的颜色?

Java 如何根据文本的值更改行中文本的颜色?,java,swing,jtable,awt,Java,Swing,Jtable,Awt,这就是我所尝试的….我认为您必须实现一个新的解决方案。看一看oracle的JTabel教程 我希望它对表格单元格渲染器有所帮助。。 import java.awt.*; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.TreeSet; import javax.swing.

这就是我所尝试的….

我认为您必须实现一个新的解决方案。看一看oracle的JTabel教程


我希望它对

表格单元格渲染器有所帮助。。
import java.awt.*;
       import java.util.ArrayList;
      import java.util.Collection;
        import java.util.HashMap;
       import java.util.TreeSet;

        import javax.swing.*;
       import javax.swing.table.JTableHeader;
       import javax.swing.table.TableColumn;

   class Result extends JFrame {

    HashMap hm;

    JLabel marks=new JLabel();

    Result(){

        hm=Quiz.hm;
        marks.setText("YOU SCORED "+Quiz.score+" MARKS");

        marks.setFont(new Font("Times New Roman",Font.BOLD,30));

        setLayout(new BorderLayout());
        String[] columnNames = {"Qno","Question","Submitted Answer","Correct Answer","status"};

         int rows=hm.size();

         String[][] result=new String[rows][5];

         //Collection c=hm.values();

        ArrayList al=new ArrayList(hm.values());


        JTable table = new JTable(result,columnNames);
        JTableHeader header=table.getTableHeader();
                header.setBackground(Color.BLACK);
                header.setForeground(Color.WHITE);


         for(int i=0;i<rows;i++)
           {
               Question s1=(Question)al.get(i);

                    for(int j=0;j<5;j++)
                 {

                   if(j==0)
                       result[i][j]=s1.getQueNo()+"";
                   if(j==1)
                        result[i][j]=s1.getQuestion();
                   if(j==2)
                        result[i][j]=s1.getSubmitted();
                   if(j==3)
                       result[i][j]=s1.getAnswer();
                   if(j==4 && s1.getSubmitted().equals(s1.getAnswer())) {
                        result[i][j]="Right Answer";

                    }
                   if(j==4 && !(s1.getSubmitted().equals(s1.getAnswer()))){
                       result[i][j]="Wrong Answer".toUpperCase() ;

                   }
                 }
           }


         table.disable();


         String name= table.getColumnName(4);

            TableColumn column = null;
            for (int i = 0; i < 5; i++) {
                column = table.getColumnModel().getColumn(i);
                if(i==0)
                {
                    column.setPreferredWidth(5);
                }
                if(i==1)
                {
                    column.setPreferredWidth(200);
                }
                if(i==2)
                {
                    column.setPreferredWidth(50);
                }
                if(i==3)
                {
                    column.setPreferredWidth(50);
                }
                if(i==4)
                {
                    column.setPreferredWidth(50);
                }

            }    


           table.setRowHeight(table.getRowHeight() + 10);

            JScrollPane scrollPane = new JScrollPane(table);

              table.setFillsViewportHeight(true);



              add(scrollPane,BorderLayout.NORTH);
              add(marks,BorderLayout.SOUTH);
    }

    }
if(j==4 && s1.getSubmitted().equals(s1.getAnswer())) {

  result[i][j]="Right Answer";

setForeground(Color.GREEN);                     
}

if(j==4 && !(s1.getSubmitted().equals(s1.getAnswer()))){

result[i][j]="Wrong Answer".toUpperCase() ;

setForeground(Color.GREEN);  

 }