table.setFont
时间: 2024-03-09 13:50:44 浏览: 24
`table.setFont` 方法可以用于设置 JTable 的整体字体。具体来说,它可以设置 JTable 的列标题和单元格中的内容的字体。示例代码如下:
```java
import javax.swing.*;
import java.awt.*;
public class MyTable extends JTable {
public MyTable(Object[][] rowData, Object[] columnNames) {
super(rowData, columnNames);
// 设置整体字体
setFont(new Font("宋体", Font.PLAIN, 16));
}
}
```
在上面的示例代码中,`MyTable` 类继承自 `JTable` 类,它的构造方法中通过 `setFont` 方法将整个表格的字体设置为宋体,字号为 16 磅。
相关问题
怎么样在 JTable table = new JTable(tableModel){ };美化表格
可以通过以下几种方式美化JTable表格:
1.改变表格的背景色和前景色
可以通过`table.setBackground(Color.WHITE);`和`table.setForeground(Color.BLACK);`方法来改变表格的背景色和前景色。
2.改变表格的字体和字号
可以通过`table.setFont(new Font("微软雅黑", Font.PLAIN, 14));`方法来改变表格的字体和字号。
3.改变表头的背景色和前景色
可以通过`table.getTableHeader().setBackground(Color.LIGHT_GRAY);`和`table.getTableHeader().setForeground(Color.BLACK);`方法来改变表头的背景色和前景色。
4.改变表头的字体和字号
可以通过`table.getTableHeader().setFont(new Font("微软雅黑", Font.PLAIN, 14));`方法来改变表头的字体和字号。
5.设置表格行高和列宽
可以通过`table.setRowHeight(30);`和`table.getColumnModel().getColumn(0).setPreferredWidth(100);`方法来设置表格行高和列宽。
6.隐藏表格网格线
可以通过`table.setShowGrid(false);`方法来隐藏表格网格线。
完整代码示例:
```
JTable table = new JTable(tableModel){
//设置表格背景色和前景色
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
c.setBackground(Color.WHITE);
c.setForeground(Color.BLACK);
return c;
}
};
table.setFont(new Font("微软雅黑", Font.PLAIN, 14));//设置表格字体和字号
table.getTableHeader().setBackground(Color.LIGHT_GRAY);//设置表头背景色
table.getTableHeader().setForeground(Color.BLACK);//设置表头前景色
table.getTableHeader().setFont(new Font("微软雅黑", Font.PLAIN, 14));//设置表头字体和字号
table.setRowHeight(30);//设置表格行高
table.getColumnModel().getColumn(0).setPreferredWidth(100);//设置表格列宽
table.setShowGrid(false);//隐藏表格网格线
```
String arr[] = { "ISBN", "book name", "author", "price" }; String comm[][] = new String[row][4]; rs.next(); for (int i = 0; i < row; i++) { comm[i][0] = rs.getString("ISBN"); comm[i][1] = rs.getString("book_name"); comm[i][2] = rs.getString("author"); comm[i][3] = rs.getString("price"); rs.next(); } JTable jTable = new JTable(comm, arr); jTable.setBounds(0, 10, 980, 400); JTableHeader head = jTable.getTableHeader(); head.setPreferredSize(new Dimension(head.getWidth(), 35)); head.setFont(new Font("Arial", Font.PLAIN, 30)); jTable.setFont(new Font("Menu.font", Font.PLAIN, 20)); jTable.setRowHeight(25); jTable.setPreferredScrollableViewportSize(new Dimension(800, 300));// 设置可滚动视图的大小 JScrollPane jScrollPane = new JScrollPane(jTable); jScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); this.add(jScrollPane, BorderLayout.CENTER);// 将滚动条放到窗体 setDefaultCloseOperation(EXIT_ON_CLOSE); jTable.setVisible(true); this.setVisible(true);// 设置窗体可见 this.validate();// 设置组件可见 this.pack();// 自动调整组建大小使每个组键都能显示 this.setLocationRelativeTo(null); this.setTitle("Booklist"); this.setSize(1000, 600); this.setLayout(null); jScrollPane.setBounds(0, 70, 980, 300);// 添加这一行 在这段代码中加入一个输入框和按钮点击按钮筛选出table第二行和输入内容相同的行,其他行隐藏起来
你可以在代码中添加一个文本框和一个按钮,用于输入筛选条件和触发筛选操作。然后在按钮的点击事件中,根据输入的条件筛选出需要显示的行,其他行则将其隐藏起来。
这里提供一种实现方式:
首先,在窗口中添加一个文本框和一个按钮:
```
JTextField filterField = new JTextField();
filterField.setBounds(10, 10, 150, 30);
this.add(filterField);
JButton filterButton = new JButton("Filter");
filterButton.setBounds(170, 10, 80, 30);
this.add(filterButton);
```
接着,在按钮的点击事件中实现筛选逻辑:
```
filterButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String filterText = filterField.getText();
for (int i = 0; i < row; i++) {
if (comm[i][1].equals(filterText)) {
jTable.setRowHeight(i, 25);
} else {
jTable.setRowHeight(i, 0);
}
}
}
});
```
这里假设你要筛选第二列的值与输入框中的文本相同的行。如果不同列需要筛选,可以根据列的索引号修改代码中的 `comm[i][1]`。筛选时,将需要显示的行的高度设为 25,其他行则将其高度设为 0,从而隐藏起来。