JTable Cell字体? (JAVA)

时间:2011-07-10 14:59:28

标签: java swing fonts jtable

我正在创建的程序应该像Microsoft Excel一样工作,JAVA除外。它应该也支持单元格格式化(这是我的问题)。我有用于检测单击哪个单元格以及使用哪种字体正常工作的代码 - 我只是无法弄清楚如何将Font应用于单元格! Google给了我CellRenderers,但似乎只有当条件为true时,单元格渲染器才会格式化单元格。我希望它在调用时使用指定的Font进行格式化!

有人可以 帮助我,我 真的很困惑 !!!

我已经查看了Java Tutorials

如果以前曾问过这个问题我很抱歉!

2 个答案:

答案 0 :(得分:5)

这就是你要找的东西,这段代码片段改变了jTable中所有列的字体。 我确信稍作修改可以让您的方案得到满足。

for (int i = 0; i < jTable1.getColumnCount(); i ++) {
    TableColumn col = jTable1.getColumnModel().getColumn(i);
    col.setCellEditor(new MyTableCellEditor());
}


public class MyTableCellEditor extends AbstractCellEditor implements TableCellEditor {
    JComponent component = new JTextField();
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex) {
        ((JTextField)component).setText((String)value);
        ((JTextField)component).setFont(new java.awt.Font("Arial Unicode MS", 0, 12));
        return component;
    }
}

答案 1 :(得分:0)

这将更改表格中所有单元格的字体 - 即使添加了新的列或行:

df = read.table(text="Species         Weight    Avg_Cornea_Diameter
                GreatGrey      971       19.50
                GreatGrey      1209      19.00
                GreatGrey      1793      21.00
                Snowy           1572      22.50
                Snowy           1500      23.50
                Snowy           1490      22.00", header = TRUE)