`

调整JTable的单元格宽度

    博客分类:
  • java
阅读更多
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);
            }
        }

 

分享到:
评论

相关推荐

    JTable 操作单元格 行 列

    3. **调整列宽**:`setColumnWidth(int columnIndex, int width)`允许设置列的宽度。`autoResizeMode`属性可以设置为自动调整列宽以适应内容。 4. **隐藏/显示列**:可以通过修改`DefaultTableColumnModel`来隐藏或...

    jtable中放多个Button.rar

    - 你还需要确保单元格的大小能够适应所有按钮,可以通过调整列宽或者设置单元格的最小宽度。 - 由于JTable默认的交互行为可能与按钮的交互有冲突,你可能需要处理焦点和鼠标事件,以确保正确的行为。 在...

    基于JTable的列宽与内容自适应的实现方法

    然而,默认情况下,`JTable`的列宽是平均分配的,这可能导致某些含有长内容的单元格被截断,影响了用户体验。为了解决这个问题,我们可以实现列宽与内容自适应的功能,确保每一列的宽度根据其内容的长度自动调整。...

    java 中 Jtable的用法

    JTable还支持自定义单元格的样式,包括网格线颜色、行高、选中时的前景色与背景色等。 - 更改网格线颜色:`table.setGridColor(Color.black);` - 设置行高:`table.setRowHeight(30);` - 设置选中项的背景色:`...

    Swing JTable 常用属性

    可以使用 `setAutoResizeMode` 方法将表格列设置为不可随容器组件大小变化自动调整宽度,例如:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);` 2. 限制某列的宽度 可以使用 `TableColumn` 对象设置某列的...

    JTable的一些小应用

    对于特定列的宽度调整,可以使用 `TableColumnModel` 和 `TableColumn` 对象来实现。例如,要设置第一列的宽度为100像素: ```java TableColumn column = table.getColumnModel().getColumn(0); column....

    JAVA表格控件JTable常用操作详解.doc

    1. **关闭自动调整宽度**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`,防止列宽随窗口大小改变而自动调整。 2. **设置列宽限制**:通过`TableColumn`对象的`setPreferredWidth`, `setMaxWidth`和`...

    JTable颜色渲染代码

    - **自动调整大小模式关闭**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`表示关闭表格自动调整列宽的功能。 - **行高设置**:`table.setRowHeight(20)`用于设置表格的行高。 - **列宽设置**:通过循环遍历...

    Java中JTable的用法.doc

    JTable的布局和大小可以进行调整。例如,`table.setPreferredScrollableViewportSize(new Dimension(300, 80))`设定了表格的理想视口尺寸,确保表格在窗口中的可见性。而`setAutoResizeMode(int mode)`方法用来控制...

    java表格控件JTable常用操作详解.pdf

    1. 设置列不可随容器组件大小变化自动调整宽度:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);` 这种方式可以禁止表格列的自动调整宽度。 2. 限制某列的宽度:`TableColumn firsetColumn = table....

    JTable表头合并

    在这个方法中,你可以根据需要调整单元格的尺寸和文本对齐,以实现合并的效果。 2. **合并逻辑**:在表头渲染器中,你需要检测当前列是否应该被合并。这通常涉及到遍历所有列,检查它们的标题是否相同,如果相同,...

    JTable常见用法细则.doc

    ### Java中的JTable常见用法详解 #### 一、创建JTable控件的方式 JTable是Swing框架中用于展示表格数据的一个重要组件。通过不同的构造方法,我们可以根据实际需求灵活地创建表格。 1. **无参数构造**: - **...

    JAVA中JTable组件详解实例

    通过这种方式创建的`JTable`所有单元格都是只读的。 #### 三、对表格列的控制 1. **设置列不可随容器组件大小变化自动调整宽度** ```java table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); ``` 设置后,...

    java 单元格合并

    对于Swing的`JTable`,情况类似,可以调整`TableColumnModel`的列宽,但同样没有直接的合并功能。可能需要创建自定义的`TableCellRenderer`来达到合并的效果。 2. **使用Apache POI进行Excel单元格合并** Apache...

    中级SWING-JTable属性

    - **`AUTO_RESIZE_SUBSEQUENT_COLUMNS`**:当调整某一列时,后续列也会相应地调整其宽度。 - **`AUTO_RESIZE_LAST_COLUMN`**:只调整最后一列的宽度,并确保表格占据整个容器空间。 - **`AUTO_RESIZE_ALL_COLUMNS`**...

    JTable_JTree.rar_JTable Java_JTree JTable_jtree

    `JTable`可以动态地调整大小,用户可以对其进行排序、编辑和选择。创建`JTable`需要以下三个主要部分: 1. **模型(TableModel)**:这是数据存储的地方,它定义了数据的结构和行为。你可以自定义`TableModel`来...

    java JTable用法详解

    1. **设置列不可随容器组件大小变化自动调整宽度**: ```java table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); ``` 当设置了这个属性后,表格的列宽将不再根据窗口大小变化而自动调整。 2. **限制某列的宽度...

    JTableSample_java_netbeans_jtable_源码

    你可以通过`JTable.getColumnModel()`获取列模型,并调整列的属性。 **5. 事件处理** `JTable`支持多种事件,如单元格更改、选中行改变等。可以通过添加`TableModelListener`,`CellEditorListener`等监听器来响应...

    JAVA中JTable组件详解实例[借鉴].pdf

    1. **禁用自动调整列宽**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`,这样列宽就不会随着容器大小的变化而改变。 2. **设置列宽**:可以使用`TableColumn`对象来设定某一列的最小、最大和首选宽度。 3. *...

    JTable 组件学习

    `JTable`的列可以调整宽度,隐藏或显示。例如,`table.getColumnModel().getColumn(index).setMinWidth(width);`设定最小宽度。 6. **行操作** `JTable`的行可以添加、删除。`model.insertRow()`和`model....

Global site tag (gtag.js) - Google Analytics