首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置货币的JTable列的格式

设置货币的JTable列的格式
EN

Stack Overflow用户
提问于 2014-05-15 16:25:16
回答 3查看 9.5K关注 0票数 1

我有一个JTable,我想要将特定的列格式化为currency。如果我在那一栏上放一个类似3的数字,它将显示$3.00。我使用了TableCellRenderer,但我不打算深入讨论它。有人能帮上忙吗?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-15 22:49:29

查看Table Format Renderers

它展示了如何使用渲染器通过Format类进行简单的格式化。它甚至支持一种方便的方法来格式化货币。

顺便说一下,在你发布并接受答案的最后两个问题中,有更好的(更简单的)答案,你可以使用。

票数 2
EN

Stack Overflow用户

发布于 2014-05-15 16:43:05

这里有一个简单的例子。我不知道它是否能工作(如果不能--试着修复它)。

代码语言:javascript
运行
复制
import java.awt.Component;
import java.text.NumberFormat;

import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class CurrencyTableCellRenderer extends DefaultTableCellRenderer {

    private static final NumberFormat FORMAT = NumberFormat.getCurrencyInstance();

    @Override
    public final Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
        final Component result = super.getTableCellRendererComponent(table, value,
                isSelected, hasFocus, row, column);
        if (value instanceof Number) {
            setHorizontalAlignment(JLabel.RIGHT);
            setText(FORMAT.format(value));
        } else {
            setText("");
        }
        return result;
    }
}

要添加它:

代码语言:javascript
运行
复制
table.getColumnModel().getColumn(column).setCellRenderer(new CurrencyTableCellRenderer());
票数 2
EN

Stack Overflow用户

发布于 2017-02-06 19:13:18

代码语言:javascript
运行
复制
import javax.swing.table.DefaultTableCellRenderer;
import java.text.NumberFormat;

/**
 * Created by Ayettey on 06/02/2017.
*/
public class  CurrencyRenderer extends DefaultTableCellRenderer {

CurrencyRenderer(){
    super();

}

public void setValue(Object value){

    Number number=(Number)value;
      if((value!=null)&&(value instanceof Number)){
          NumberFormat numberFormat=NumberFormat.getCurrencyInstance();
          value=numberFormat.format(number.doubleValue());
      }



    super.setValue(value);

}

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23672911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档