【问题标题】:JTable Cell Font? (Java)JTable 单元格字体? (爪哇)
【发布时间】:2011-10-02 06:40:13
【问题描述】:
我正在创建的程序应该像Microsoft Excel 一样工作,JAVA 除外。它应该还支持单元格格式(这是我的问题)。我有用于检测单击了哪个单元格以及使用什么字体正常工作的代码 - 我只是无法弄清楚如何将 Font 应用于单元格! Google 给了我CellRenderers,但似乎只有当条件为true 时,单元格渲染器才会格式化单元格。我希望它在调用时使用指定的Font 格式化!
谁能请帮助我,我真的很困惑!!!
我已经看过Java Tutorials。
如果之前有人问过这个问题,我深表歉意!
【问题讨论】:
标签:
java
swing
fonts
jtable
【解决方案1】:
这将更改表格中所有单元格的字体 - 即使添加了新列或行:
JTable table;
......
Object dce = table.getDefaultEditor(Object.class);
if(dce instanceof DefaultCellEditor) {
((DefaultCellEditor) dce).getComponent().setFont([your font]);
}
【解决方案2】:
这就是您要查找的内容,此代码 sn-p 更改了 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;
}
}