java jtable 固定行数
时间: 2023-06-23 08:08:31 浏览: 158
要固定 JTable 的行数,您可以使用 JViewport 和 setPreferredSize() 方法。以下是一个示例代码片段,其中 JTable 的行数设置为 5:
```
JTable table = new JTable();
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
JViewport viewport = new JViewport();
viewport.setView(table);
viewport.setPreferredSize(new Dimension(500, 70));
scrollPane.setRowHeaderView(viewport);
```
在此示例中,JTable 的高度设置为 70,而 JViewport 的高度设置为 5 行的高度。每次滚动 JTable 时,JViewport 会自动跟随。
相关问题
java defaulttablemodel 固定行数
如果你想要使用 `DefaultTableModel` 来创建一个具有固定行数的表格,可以通过以下步骤实现:
1. 创建一个继承自 `DefaultTableModel` 的子类,例如 `FixedRowsTableModel`。
2. 在子类的构造函数中,使用 `super(columnNames, 0)` 初始化父类,其中 `columnNames` 是一个包含所有列名的字符串数组,而 `0` 是指定表格中的行数为0。这样就创建了一个没有行的空表格。
3. 添加一个 `addRow()` 方法,该方法将在表格中添加一行。在方法中,首先检查表格中的行数是否已达到预期的最大行数。如果是,则从表格的顶部删除一行。然后,使用 `super.addRow(data)` 添加新行 `data` 到表格中。
下面是一个示例代码,该代码创建了一个具有3行的表格,当添加新行时,将始终保持表格的行数为3:
```java
import javax.swing.table.DefaultTableModel;
public class FixedRowsTableModel extends DefaultTableModel {
private static final int MAX_ROWS = 3;
public FixedRowsTableModel(String[] columnNames) {
super(columnNames, 0);
}
@Override
public void addRow(Object[] data) {
if (getRowCount() >= MAX_ROWS) {
removeRow(0);
}
super.addRow(data);
}
}
```
可以使用以下代码创建一个具有固定行数的表格:
```java
String[] columnNames = {"Column 1", "Column 2", "Column 3"};
FixedRowsTableModel model = new FixedRowsTableModel(columnNames);
JTable table = new JTable(model);
```
java jtable刷新_Java JTable 实现数据动态更新
实现 JTable 数据的动态更新可以通过以下步骤完成:
1. 创建 JTable 对象并设置表格模型。
2. 创建一个数据模型并将其与表格模型绑定。
3. 创建一个数据源,可以是数据库或者其他数据来源。
4. 将数据源中的数据填充到数据模型中。
5. 将数据模型中的数据更新到表格模型中。
6. 调用 JTable 的 repaint() 方法刷新表格。
下面是一个简单的示例代码,演示了如何在 JTable 中实现数据动态更新:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class DynamicTableDemo extends JFrame {
private DefaultTableModel model;
private JTable table;
public DynamicTableDemo() {
// 创建表格模型
model = new DefaultTableModel(new String[]{"ID", "Name", "Age"}, 0);
// 创建 JTable 并设置表格模型
table = new JTable(model);
// 将 JTable 添加到窗口
add(new JScrollPane(table));
// 添加数据
addData(1, "Alice", 25);
addData(2, "Bob", 30);
addData(3, "Charlie", 35);
// 设置窗口参数
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
setVisible(true);
}
private void addData(int id, String name, int age) {
// 添加数据到数据模型中
model.addRow(new Object[]{id, name, age});
// 刷新 JTable
table.repaint();
}
public static void main(String[] args) {
new DynamicTableDemo();
}
}
```
在上面的示例中,我们创建了一个 JTable 并设置了表格模型。然后通过调用 addData() 方法向表格中添加数据。在 addData() 方法中,我们首先向数据模型中添加数据,然后调用 JTable 的 repaint() 方法刷新表格。这样就可以实现 JTable 数据的动态更新了。
阅读全文