Java 更改JTable Cell';编辑时,请选择字体

Java 更改JTable Cell';编辑时,请选择字体,java,swing,fonts,jtable,tablecelleditor,Java,Swing,Fonts,Jtable,Tablecelleditor,我在JTable中设置了默认字体,如下所示 myTable.setFont(new java.awt.Font("Verdana", 1, 10)); 我想在JTable中显示一个更大的字体,同时将一些数据输入到单元格中。因此我使用了MyTableCellEditor自定义类 public class MyTableCellEditor extends AbstractCellEditor implements TableCellEditor { JComponent compone

我在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());

但这段代码似乎不起作用。编辑时单元格字体变小,一旦我完成编辑并按enter键,我设置的默认JTable字体(Verdana 10)就会生效。为什么会发生这种情况?我已经将CustomCellEditor字体设置为(Verdana 12)我的单元格。

不要为此创建新类。只需更改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);

不要为此创建新类。只需更改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);

对我来说很有魅力。当我编辑单元格时,字体会更大,更粗体。考虑把AN放到你的问题的底部。注意:CeleDelver的实现是无效的(因为它不通知它的监听器)对我来说是一个很有魅力的工作。当我编辑单元格时,字体会更大,更粗体。考虑把AN放到你的问题的底部。注意:CeleDelver的实现是无效的(因为它不通知它的侦听器)