jtable单元格中文字显示不同颜色,如中国人中国红色,人紫色

解决方案 »

  1.   

    用html就可以嘛TableModel jTable1Model = new DefaultTableModel(
        new String[][] { 
            { "<html><font color=red>中国 </font><font color=green></font></html>", "Two" },{ "Three", "Four" } }, 
                new String[] {"Column 1", "Column 2" });
      

  2.   

    先定义一个render:
    class myrender extends DefaultTableCellRenderer {
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, 
    boolean hasFocus, int row, int column) {
    final String s = value == null ? "" : value.toString();
    final JLabel l = new JLabel() {
    public void paint(Graphics g) {
    g.setColor(Color.BLUE);
    g.drawString(s.substring(0, 1), 0, 17);
    g.setColor(Color.RED);
    g.drawString(s.substring(1, s.length()), s.substring(0, 1).getBytes().length == 1 
    ? getFont().getSize() / 2 + 1 : getFont().getSize(), 17);
    }
    };
    l.setForeground(Color.RED);
    return l;
    }
    }再在JTable里面使用:
    jTable1.setDefaultRenderer(Object.class, new myrender());
      

  3.   

    1楼的 lz说的是JTable
    2楼的方法可行 只能重写Renderer来改变颜色