在Java中,要动态更改JTable
的行高,您可以使用TableModelListener
来监听表格模型的变化,并在变化发生时更新行高
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
public class DynamicRowHeightTable {
public static void main(String[] args) {
JFrame frame = new JFrame("Dynamic Row Height JTable");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
// 创建表格模型
DefaultTableModel model = new DefaultTableModel(new Object[][]{
{"Row1-Column1", "Row1-Column2"},
{"Row2-Column1", "Row2-Column2"},
{"Row3-Column1", "Row3-Column2"}
}, new Object[]{"Column1", "Column2"});
// 创建JTable并设置模型
JTable table = new JTable(model);
// 添加TableModelListener以动态更改行高
model.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
int rowCount = table.getRowCount();
for (int i = 0; i < rowCount; i++) {
table.setRowHeight(i, 30); // 设置行高为30像素
}
}
});
JScrollPane scrollPane = new JScrollPane(table);
frame.add(scrollPane);
frame.setVisible(true);
}
}
在这个示例中,我们创建了一个包含3行2列的JTable
。我们为表格模型添加了一个TableModelListener
,当表格模型发生变化时(例如,添加或删除行),它会遍历所有行并将行高设置为30像素。
企业创新在线学堂
云+社区沙龙online [国产数据库]
云+社区沙龙online [国产数据库]
新知
云+社区沙龙online [国产数据库]
云+社区沙龙online [国产数据库]
云+社区沙龙online [国产数据库]
领取专属 10元无门槛券
手把手带您无忧上云