【问题标题】:Alignment in a JTable cellJTable 单元格中的对齐方式
【发布时间】:2013-10-03 10:25:12
【问题描述】:

我正在使用以下DefaultTableCellRenderer 在我的表格中显示货币。它也可以正常工作,我唯一的问题是,我设置此渲染器的列中的数字左对齐,其他所有内容都右对齐。我想知道为什么。

public class DecimalFormatRenderer extends DefaultTableCellRenderer {

public static final DecimalFormat formatter = new DecimalFormat("#.00");

@Override
public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    value = formatter.format((Number) value);
    return super.getTableCellRendererComponent(
            table, value, isSelected, hasFocus, row, column);
}    
}

【问题讨论】:

    标签: java swing jtable tablecellrenderer


    【解决方案1】:

    JTable 用于渲染数字的默认单元格渲染器将其水平对齐到JLabel.RIGHT...

    static class NumberRenderer extends DefaultTableCellRenderer.UIResource {
        public NumberRenderer() {
            super();
            setHorizontalAlignment(JLabel.RIGHT);
        }
    }
    

    默认情况下,您的渲染将使用JLabel.LEADING(基于JLabel)。

    如果您更改渲染器以在构造函数中设置水平对齐,它应该与您想要的位置对齐...

    public class DecimalFormatRenderer extends DefaultTableCellRenderer {
    
        //...
    
        public DecimalFormatRenderer() {
            super();
            setHorizontalAlignment(JLabel.RIGHT);
        }
    
        //...
    }
    

    【讨论】:

      猜你喜欢
      • 2013-12-19
      • 2011-01-25
      • 1970-01-01
      • 2023-04-02
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 2014-01-10
      相关资源
      最近更新 更多