簡體   English   中英

JTable單元格中的對齊

[英]Alignment in a JTable cell

我使用以下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);
}    
}

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);
    }

    //...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM