gpt4 book ai didi

java - 使用 DefaultTableCellRenderer 指定 JTable 中的列类

转载 作者:行者123 更新时间:2023-11-29 07:48:10 25 4
gpt4 key购买 nike

我正在尝试使用 DefaultTableCellRenderer 来格式化 JTable 中的列。例如:如果用户输入:

20140914

格式如下:

2014-09-14

我的代码如下:

    //Setting data type for each class
//This is a method within the DefaultTableModel
public Class getColumnClass(int col)
{

if (col == 0)
return DateRenderer.class;
if (col == 1 || col == 2)
return String.class;
else
return Double.class;


}

//This is a separate class that I have problem with:
static class DateRenderer extends DefaultTableCellRenderer
{

//Using Decimal format to format dash
DecimalFormatSymbols fmtSymbols = new DecimalFormatSymbols();
fmtSymbols.setDecimalSeparator('-');
DecimalFormat fmt = new DecimalFormat("####.##.##");


public DateRenderer() {
super(); }

public void setValue(Object value)
{

setText (fmt.format(value));

}

}

代码有两个问题。一是我的线路有问题:

 fmtSymbols.setDecimalSeparator('-');

还有一个就是会让我的整个专栏变得不可编辑(其他专栏仍然可以编辑保存)。

最佳答案

不要使用 DecimalFormat 来呈现日期。相反,您应该使用 SimpleDataFormat。参见 Table Format Renderers用于您可以使用的渲染器。

Another is that it will make my whole column become un-editable

渲染器不控制列是否可编辑。这是 isCellEditable(...) 方法的工作。

另外,您的 getColumnClass(...) 实现是错误的。您不应该返回 DateRender.class。相反,您应该返回列中存储的数据的类,它可能应该是 Date.class

关于java - 使用 DefaultTableCellRenderer 指定 JTable 中的列类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com