JTable Cell Font?(Джава) - PullRequest
1 голос
/ 10 июля 2011

Программа, которую я создаю , должна работать как Microsoft Excel, за исключением JAVA. Он должен также поддерживать форматирование ячеек (что является моей проблемой). У меня есть код для определения, какая ячейка нажата, и какой шрифт, чтобы использовать работает правильно - я просто не могу понять, как применить Font к ячейке! Google дал мне CellRenderers, но кажется, что средства визуализации ячеек форматируют ячейку только тогда, когда условие true. Я хочу, чтобы он отформатировал с указанным Font, когда он вызывается!

Может кто-нибудь пожалуйста помогите мне, я действительно растерялся !!!

Я уже посмотрел Java Tutorials .

Приношу свои извинения, если этот вопрос задавался ранее!

Ответы [ 2 ]

5 голосов
/ 10 июля 2011

это то, что вы ищете ,, этот фрагмент кода изменяет шрифт всех столбцов в 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;
    }
}
0 голосов
/ 21 сентября 2017

Это изменит шрифт для всех ячеек таблицы - даже при добавлении новых столбцов или строк:

JTable table;
......
Object dce = table.getDefaultEditor(Object.class);
if(dce instanceof DefaultCellEditor) {
    ((DefaultCellEditor) dce).getComponent().setFont([your font]);
}
...