JTable 单元格渲染
我正在获取数据库数据并显示在表格中。
我的 getColumnClass 是
@Override
public Class<? extends Object> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
当我打印值时,我得到的类名称为 java.sql.Timestamp,但是当它显示时我遇到了问题,它只显示 dd/MM/yyyy,但我需要它显示 dd/MM /yyyy HH:mm,我怎样才能做到这一点?
除此之外,我还需要检查数据时间是否小于今天,然后禁用该行
I'm getting data for the DB and displaying in a table.
My getColumnClass is
@Override
public Class<? extends Object> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
when I print the value, I get the class name as java.sql.Timestamp, but when it display I'm have a problem, it just display dd/MM/yyyy, but I need it to display dd/MM/yyyy HH:mm, how can I achieve this?
Apart from doing this, I need to check if the datatime is lesser than today then disable the row
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我知道这是一个非常古老的问题,但我遇到了一个非常相似的问题,并决定发布一个更好的解决方案来解决该问题。
首先,您应该定义一个新类:TimestampCellRenderer.java
然后在您的 GUI 类中,将此定义添加到您的类中:
在本例中,我决定格式化第一列,但定义一个常量将是一个非常好的实践在你的表模型中。
最好的部分是您可以将您的代码与使用时间戳数据类型的其他表重用。
希望这有帮助!
I know this is a very old question, but I was having a very similar problem and decided to post a better solution for the problem.
First, you should define a new class: TimestampCellRenderer.java
And then in your GUI class, add this definition to your class:
In this case, I decided to format the first column, but it would be a very good practise to define a constant in your table model.
The best part of this is that you can reuse your code with other tables that make use of the Timestamp data type.
Hope this helps!
我找到了解决方案,这就是
有更好的方法吗?
I found a solution, and here it is
Is there a better way to do it?