BWStatTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
for (int i = 0; i < BWStatTable.getColumnCount(); i++) {
TableColumn tc = BWStatTable.getColumn(BWStatTable.
getColumnName(i));
int c = tc.getModelIndex();
int width = 0;
int maxw = 0;
for (int r = 0; r < BWStatTable.getRowCount(); ++r) {
TableCellRenderer renderer = BWStatTable.
getCellRenderer(r, c); //得到每个单元格的渲染器
Component comp = renderer.getTableCellRendererComponent(
BWStatTable, "", false, false,
r, c);
width = comp.getPreferredSize().width;
maxw = width > maxw ? width : maxw;
}
TableCellRenderer headRenderer = tc.getHeaderRenderer(); //得到每列中的表头渲染器
if (headRenderer == null) {
headRenderer = BWStatTable.getTableHeader(). //得到表头中的表头渲染器
getDefaultRenderer();
}
Component comp = headRenderer.getTableCellRendererComponent(
BWStatTable, tc.getHeaderValue(), false, false, 0,
i);
int w = comp.getPreferredSize().width;
maxw = w > maxw ? w : maxw;
if (BWStatTable.getColumnCount() == 2) {
tc.setMinWidth(maxw + 20);
tc.setPreferredWidth(maxw + 160);
}
if (BWStatTable.getColumnCount() == 3) {
tc.setMinWidth(maxw + 20); //列设置宽度
tc.setPreferredWidth(maxw + 70);
}
}
分享到:
相关推荐
3. **调整列宽**:`setColumnWidth(int columnIndex, int width)`允许设置列的宽度。`autoResizeMode`属性可以设置为自动调整列宽以适应内容。 4. **隐藏/显示列**:可以通过修改`DefaultTableColumnModel`来隐藏或...
- 你还需要确保单元格的大小能够适应所有按钮,可以通过调整列宽或者设置单元格的最小宽度。 - 由于JTable默认的交互行为可能与按钮的交互有冲突,你可能需要处理焦点和鼠标事件,以确保正确的行为。 在...
然而,默认情况下,`JTable`的列宽是平均分配的,这可能导致某些含有长内容的单元格被截断,影响了用户体验。为了解决这个问题,我们可以实现列宽与内容自适应的功能,确保每一列的宽度根据其内容的长度自动调整。...
JTable还支持自定义单元格的样式,包括网格线颜色、行高、选中时的前景色与背景色等。 - 更改网格线颜色:`table.setGridColor(Color.black);` - 设置行高:`table.setRowHeight(30);` - 设置选中项的背景色:`...
可以使用 `setAutoResizeMode` 方法将表格列设置为不可随容器组件大小变化自动调整宽度,例如:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);` 2. 限制某列的宽度 可以使用 `TableColumn` 对象设置某列的...
对于特定列的宽度调整,可以使用 `TableColumnModel` 和 `TableColumn` 对象来实现。例如,要设置第一列的宽度为100像素: ```java TableColumn column = table.getColumnModel().getColumn(0); column....
1. **关闭自动调整宽度**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`,防止列宽随窗口大小改变而自动调整。 2. **设置列宽限制**:通过`TableColumn`对象的`setPreferredWidth`, `setMaxWidth`和`...
- **自动调整大小模式关闭**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`表示关闭表格自动调整列宽的功能。 - **行高设置**:`table.setRowHeight(20)`用于设置表格的行高。 - **列宽设置**:通过循环遍历...
JTable的布局和大小可以进行调整。例如,`table.setPreferredScrollableViewportSize(new Dimension(300, 80))`设定了表格的理想视口尺寸,确保表格在窗口中的可见性。而`setAutoResizeMode(int mode)`方法用来控制...
1. 设置列不可随容器组件大小变化自动调整宽度:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);` 这种方式可以禁止表格列的自动调整宽度。 2. 限制某列的宽度:`TableColumn firsetColumn = table....
在这个方法中,你可以根据需要调整单元格的尺寸和文本对齐,以实现合并的效果。 2. **合并逻辑**:在表头渲染器中,你需要检测当前列是否应该被合并。这通常涉及到遍历所有列,检查它们的标题是否相同,如果相同,...
### Java中的JTable常见用法详解 #### 一、创建JTable控件的方式 JTable是Swing框架中用于展示表格数据的一个重要组件。通过不同的构造方法,我们可以根据实际需求灵活地创建表格。 1. **无参数构造**: - **...
通过这种方式创建的`JTable`所有单元格都是只读的。 #### 三、对表格列的控制 1. **设置列不可随容器组件大小变化自动调整宽度** ```java table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); ``` 设置后,...
对于Swing的`JTable`,情况类似,可以调整`TableColumnModel`的列宽,但同样没有直接的合并功能。可能需要创建自定义的`TableCellRenderer`来达到合并的效果。 2. **使用Apache POI进行Excel单元格合并** Apache...
- **`AUTO_RESIZE_SUBSEQUENT_COLUMNS`**:当调整某一列时,后续列也会相应地调整其宽度。 - **`AUTO_RESIZE_LAST_COLUMN`**:只调整最后一列的宽度,并确保表格占据整个容器空间。 - **`AUTO_RESIZE_ALL_COLUMNS`**...
`JTable`可以动态地调整大小,用户可以对其进行排序、编辑和选择。创建`JTable`需要以下三个主要部分: 1. **模型(TableModel)**:这是数据存储的地方,它定义了数据的结构和行为。你可以自定义`TableModel`来...
1. **设置列不可随容器组件大小变化自动调整宽度**: ```java table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); ``` 当设置了这个属性后,表格的列宽将不再根据窗口大小变化而自动调整。 2. **限制某列的宽度...
你可以通过`JTable.getColumnModel()`获取列模型,并调整列的属性。 **5. 事件处理** `JTable`支持多种事件,如单元格更改、选中行改变等。可以通过添加`TableModelListener`,`CellEditorListener`等监听器来响应...
1. **禁用自动调整列宽**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`,这样列宽就不会随着容器大小的变化而改变。 2. **设置列宽**:可以使用`TableColumn`对象来设定某一列的最小、最大和首选宽度。 3. *...
`JTable`的列可以调整宽度,隐藏或显示。例如,`table.getColumnModel().getColumn(index).setMinWidth(width);`设定最小宽度。 6. **行操作** `JTable`的行可以添加、删除。`model.insertRow()`和`model....