在编辑时更改JTable Cell的字体

prerum 发布于 2019-03-09 fonts 最后更新 2019-03-09 14:32 3 浏览

我在我的JTable中设置了默认字体,如下所示

myTable.setFont(new java.awt.Font("Verdana", 1, 10));
我想在我的JTable中显示更大的字体,同时将一些数据输入到单元格中。所以我使用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 Font("Verdana", 1, 12));
return component;
    }
public Object getCellEditorValue() {
        return ((JTextField) component).getText();
    }
}
以下是我将CustomCellEditor附加到我的表格的代码。
myTable.getColumnModel().getColumn(1).setCellEditor(new MyTableCellEditor());
但是这段代码似乎不起作用。编辑时单元格字体变小,一旦我完成编辑并敲击回车,我设置的默认JTable字体(Verdana 10)就会生效。为什么会发生这种情况?我已经将CustomCellEditor字体设置为(Verdana 12)给我的单元格。
已邀请:

hid

赞同来自:

不要为此创建新类。只需更改DefaultCellEditor的属性:

JTextField textField = new JTextField();
textField.setFont(new Font("Verdana", 1, 12));
textField.setBorder(new LineBorder(Color.BLACK));
DefaultCellEditor dce = new DefaultCellEditor( textField );
myTable.getColumnModel().getColumn(1).setCellEditor(dce);