1.一个JTable,要让第一列的背景色为黑色,其他列背景色不变。什么方法可以解决?
2.JTable可编辑,当输入数字的时候,右对齐,输入汉字和字母的时候,左对齐,什么方法可以解决?

解决方案 »

  1.   

    1、可以设置Table的CellRenderer实现,在Renderer的实现方法中,对column == 0进行判断,
    if(column == 1){
    setBackground(Color.black);
    }
    2、重写TableModel的 getColumnClass方法,只能对一列进行设置。也可以通过Renderer实现,实际上默认的Renderer也就是一个Label,对Renderer的value进行判断;if(isNumber){
    setsetHorizontalAlignment(LEFT or RIGHT);
    }
      

  2.   

             table.setDefaultRenderer(Object.class, new 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 (column == 0) {
    this.setBackground(Color.BLACK);

    try {
    Integer.parseInt(value.toString());
    setHorizontalAlignment(RIGHT);
    } catch (NumberFormatException e) {
    setHorizontalAlignment(LEFT);
    }
    return this;
    }

    });
      

  3.   

    二楼的不对,我在一楼给你提供了一个思路,你最好还是写一个isNumber的方法,对数值进行判断。具体可以使用正则来实现