整列的设置方法是这样,整行呢?
DefaultTableCellRenderer dtcr = new DefaultTableCellRenderer();
dtcr.setForeground(Color.yellow);  //绘制器
jTable1.getColumnModel().getColumn(1).setCellRenderer(dtcr);  //设置列字体颜色

解决方案 »

  1.   

    改写 DefaultTableCellRenderer:import java.awt.Color;
    import java.awt.Component;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.util.Vector;import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.UIManager;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.DefaultTableModel;public class jTable extends JFrame {
    JTable table = new JTable();
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null; public jTable() {
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver"); // 驱动申明
    con = DriverManager.getConnection("jdbc:oracle:thin:@cdfn01:1521:cdfn01", "erpcn", "erpcn"); // 建立链接
    String sql = "select * from emp"; // 查询语句
    pstmt = con.prepareStatement(sql);
    rs = pstmt.executeQuery();
    } catch (Exception e) {
    System.out.println(e.toString());
    }
    table.setDefaultRenderer(Object.class, new MyRender());
    ((DefaultTableModel) table.getModel()).setDataVector(getdata(), gettitle());
    JScrollPane jsp = new JScrollPane(table);
    getContentPane().add(jsp);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
    setVisible(true);
    } private Vector gettitle() {
    try {
    ResultSetMetaData rsm = rs.getMetaData();
    Vector title = new Vector();
    for (int i = 1; i <= rsm.getColumnCount(); i++) {
    title.add(rsm.getColumnName(i));
    }
    return title;
    } catch (Exception e) {
    System.out.println(e.toString());
    }
    return new Vector();
    } private Vector getdata() {
    try {
    ResultSetMetaData rsm = rs.getMetaData();
    Vector data = new Vector();
    while (rs.next()) {
    Vector row = new Vector();
    for (int i = 1; i <= rsm.getColumnCount(); i++) {
    row.add(rs.getObject(i));
    }
    data.add(row);
    }
    return data;
    } catch (Exception e) {
    System.out.println(e.toString());
    }
    return new Vector();
    }

    public static void main(String args[]) {
    new jTable();
    }

    class MyRender extends DefaultTableCellRenderer {
    public Component getTableCellRendererComponent(JTable table,
    Object value, boolean isSelected, boolean hasFocus, int row,
    int column) {
    super.getTableCellRendererComponent(table, value, isSelected,
    hasFocus, row, column);

    if (row % 2 == 0) {
    setBackground(Color.ORANGE);
    } else {
    setBackground(Color.WHITE);
    } return this;
    }
    }
    }
      

  2.   

    试试看先,看来这个是关键
    class MyRender extends DefaultTableCellRenderer {
    public Component getTableCellRendererComponent(JTable table,
    Object value, boolean isSelected, boolean hasFocus, int row,
    int column) {
    super.getTableCellRendererComponent(table, value, isSelected,
    hasFocus, row, column);if (row % 2 == 0) {
    setBackground(Color.ORANGE);
    } else {
    setBackground(Color.WHITE);
    }return this;
    }
    }
      

  3.   

    你的方法对于设置指定单元格可能比较有效,整行的这个更方便
    jTable1 = new JTable(model1)              { public TableCellRenderer getCellRenderer(int row, int column) 
                    { DefaultTableCellRenderer render = new DefaultTableCellRenderer();
                      if(row==0)
                       render.setBackground(Color.LIGHT_GRAY);
                      return render;
                    }
                  };