我在java中有一个JTable,我想知道如何根据整数值将字体修改为粗体。我目前有这个表,我想根据教练中的人数来改变行的字体。我还是新手,我不知道如何做到这一点。我需要一个可以做类似的解决方案:
if (num_people >17 && num_people<26){
//change row font to bold
}
这是我所需要的一个例子,如果我跟着我已经拥有的图像:
链接到我当前的代码: https://gist.github.com/anonymous/015022f7ad55ff9664e2edaea6a58d5a
答案 0 :(得分:4)
public class CellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (value>17 value<26) {
this.setValue(table.getValueAt(row, column));
this.setFont(this.getFont().deriveFont(Font.BOLD));
}
return this;
}
}
这是单元格渲染器使用粗体字体的样子。我没有测试它。初始化JTable后调用table.getColumnModel().getColumn(x).setCellRenderer(new CellRenderer());
,并为要应用该字体的每一列调用它。
答案 1 :(得分:3)
结帐Table Row Rendering。它通过覆盖prepareRenderer(....)
方法显示如何将呈现应用于表中的给定行。当您为每列使用不同的渲染器时,这尤其有用。
您确实应该为表格中的某些列使用不同的渲染器。某些单元格应呈现字符串,而某些单元格应呈现数字值,这些值通常会将值显示为右对齐。
您还可以查看Table Format Renderers,这样可以更轻松地创建具有特殊数据格式的自定义渲染。