java jtable设置每一行的字体大小
时间: 2023-09-12 08:12:11 浏览: 41
你可以通过使用`DefaultTableCellRenderer`类来设置JTable每一行的字体大小。具体的步骤如下:
1. 创建一个继承自`DefaultTableCellRenderer`的类,例如`MyTableCellRenderer`。
2. 在`MyTableCellRenderer`类中重写`getTableCellRendererComponent`方法,将该方法中的`super.getTableCellRendererComponent`方法返回的`Component`对象的字体设置为你想要的字体大小。
3. 在需要设置JTable每一行的字体大小的地方,例如在JTable的构造方法中,使用`setRowHeight`方法设置行高,并使用`setDefaultRenderer`方法将`MyTableCellRenderer`对象设置为JTable的默认渲染器。
下面是一个示例代码:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.*;
public class MyTableCellRenderer extends DefaultTableCellRenderer {
private Font font;
public MyTableCellRenderer(Font font) {
this.font = font;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
component.setFont(font);
return component;
}
}
class MyTable extends JTable {
public MyTable(Object[][] rowData, Object[] columnNames) {
super(rowData, columnNames);
setRowHeight(30);
setDefaultRenderer(Object.class, new MyTableCellRenderer(new Font("宋体", Font.PLAIN, 20)));
}
}
```
在上面的示例代码中,`MyTable`类继承自`JTable`类,它的构造方法中设置了行高为30,并将`MyTableCellRenderer`对象设置为JTable的默认渲染器,其中`MyTableCellRenderer`构造方法中传入了一个字体对象,该字体对象的大小为20。这样就可以设置JTable每一行的字体大小为20了。