将Jtable行字体更改为粗体

时间:2016-12-12 14:16:31

标签: java swing fonts formatting jtable

我在java中有一个JTable,我想知道如何根据整数值将字体修改为粗体。我目前有这个表,我想根据教练中的人数来改变行的字体。我还是新手,我不知道如何做到这一点。我需要一个可以做类似的解决方案:

 if (num_people >17 && num_people<26){
     //change row font to bold
}

这是我所需要的一个例子,如果我跟着我已经拥有的图像:

What i have so far in my program

链接到我当前的代码: https://gist.github.com/anonymous/015022f7ad55ff9664e2edaea6a58d5a

2 个答案:

答案 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,这样可以更轻松地创建具有特殊数据格式的自定义渲染。

相关问题