作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从数据库中获取数据的表。但在我的数据库中,有时某些字段可能为空值,而 JTable
不显示这些空值。我想将表中的空值显示为 NA。我怎样才能做到这一点?
public void displayMovieTable(){
try {
PreparedStatement pr = conn.prepareStatement("select * from movie");
ResultSet s = pr.executeQuery();
movieTable.setModel(DbUtils.resultSetToTableModel(s));
pr.close();
} catch (SQLException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
最佳答案
最简单的可能是封装 JDBC 的特定表模型。
但是更改显示是一般方法:
TableCellRenderer old = movieTable.getDefaultRenderer(); // I.o. super?
movieTable.setDefaultRenderer(String.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
boolean notAvailable = value == null;
if (notAvailable) {
value = "N/A";
}
Component compon = super.getTableCellRendererComponent(table,
value,
isSelected,
hasFocus,
row,
column);
if (notAvailable) {
compon.setBackground(Color.GRAY);
}
return compon;
}
});
这里的问题是可能有多个渲染器。
关于java - 如何在 JTable 中显示空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53818080/
我是一名优秀的程序员,十分优秀!