在使用JTable构建类似冻结窗口的界面时,出现了一个比较奇怪的现象,rowheadview的表头和表格的表头之间有一条缝隙。如图
在查看自己的代码后发现,这个表头是rowHeadview的空间大于rowHeadview中的表格的大小造成的。而添加的过程代码如下,并没有涉及到大小。
JViewport viewport = new JViewport();
viewport.setView(fixedTable);
viewport.setPreferredSize(fixedTable.getPreferredSize());
pane.setRowHeaderView(viewport);
pane.setCorner(JScrollPane.UPPER_LEFT_CORNER, fixedTable
.getTableHeader());
pane.getViewport().removeAll();
pane.getViewport().add(table);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
最终发现,是在设定rowHeadview中表格的列宽在设定viewport的size之后。而size已经提前确定好了,调整宽度之后就出现了缝隙。原本打算冻结部分可以拖动调整大小,发现拖动的时候不会改变viewport大小,从而产生缝隙或者重叠。最终设定不可调整。
TableColumn tc2 = fixedTable.getColumnModel().getColumn(1);
tc2.setResizable(false); //不调整大小
tc2.setPreferredWidth(140);
tc2.setMinWidth(140);
tc2.setMaxWidth(140);
tc2.setCellRenderer(new TableColorRenderer());
columnModel.addColumn(tc2);
- 大小: 1.4 KB
分享到:
相关推荐
而"JTable表头合并"是Swing中的一个高级特性,允许开发者创建具有复杂结构的表头,以更好地呈现和组织数据。这种功能特别适用于那些需要将相关列分组或分类的情况。 表头合并是通过`DefaultTableColumnModel`的`...
在Java Swing库中,`JTable`是用于创建和显示二维数据的重要组件。它提供了丰富的功能,包括排序,使得用户可以方便地对表格中的数据进行升序或降序排列。本篇文章将详细介绍如何实现`JTable`表头的排序功能,并提供...
在Java Swing库中,JTable是一个非常重要的组件,用于显示和操作二维数据集。这个组件在用户界面设计中广泛使用,因为它提供了丰富的交互性,包括排序、选择和编辑表格数据。"复杂JTable-跨列表头"是一个特殊实现,...
下面是一段简单的代码示例,展示了如何创建一个具有复杂表头和跨行列表体的`JTable`: ```java import javax.swing.*; import javax.swing.table.*; public class ComplexJTableExample { public static void ...
`JTable`由行和列组成,而表头(`JTableHeader`)则对应于列标题。默认情况下,`JTableHeader`中的每个单元格都显示一个列的标题,但我们可以通过自定义渲染器来改变这个行为。 1. **自定义表头渲染器**: 要创建...
`jtable多级表头`的实现主要涉及到以下几个关键步骤和知识点: 1. **自定义表头视图**:你需要创建一个新的`DefaultTableHeaderCell`类,覆盖其`paintComponent`方法,以便绘制多级表头的重叠效果。这通常包括使用`...
在Java Swing中,`JTable` 是用于展示二维数据的组件,它允许用户查看和编辑数据。本示例探讨如何在`JTable`中添加`CheckBox`,并实现表头的`JCheckBox`全选联动功能。这在需要用户进行多选操作的界面中非常常见,...
在给定的代码示例中,开发者尝试创建一个包含表头和数据行的`JTable`。代码中初始化了一个`Vector`对象`column`来存储表头信息,另一个`Vector`对象`rowSet`用于存储表格的数据行。每一行数据也是一个`Vector`对象,...
在Java中,JTable是一个常用的表格控件,用于显示和编辑表格数据。然而,在JTable中加入复选框是一个常见的需求,但是却不是那么容易实现。本文将介绍JTable中加入复选框的两种方法,并对每种方法进行详细的解释。 ...
jtable 2 行表头显示功能 TableHeaderUI SimpleHashMap NewJFrame
在Java的Swing库中,`JTable`是用于创建二维数据展示的组件,它类似于电子表格。在处理`JTable`时,我们有时需要使其单元格内容支持自动换行,以便更好地显示长文本。标题“JTable自动换行”正是指向这个功能,即...
在Java的Swing库中,JTable是一种常用的组件,用于展示和操作二维数据表。"Jtable表格分三组排序(支持中文)"这个标题暗示我们需要实现一个功能,即允许用户按照多列进行排序,首先根据第一列(A列),然后是第二列...
在Swing中,JTable的表头(表头即列头)是由DefaultTableHeaderCell类管理的,这个类负责处理表头的显示和交互行为,包括拖动排序。 以下是实现“表头不可拖动”的几种方法: 1. **禁用ColumnModel的可移动性**: ...
实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。
`JTable`实例大全提供了各种实用示例,涵盖了`JTable`的高级功能,如合并表头和合并表格,这些功能在开发复杂的桌面应用程序时尤为关键。 1. **JTable基本用法**: `JTable`是基于`AbstractTableModel`的数据模型...
JTable的使用收藏 1.JTable与TableModel 1.TableModel与JTable的关系 ...3. JTable事件响应和项目设想 4.一个游戏:《java连连看》 1.需求分析 2.编写TableModel和界面实现 3.连连看事件监听 总结和任务
可以使用表头和表数据创建一个 JTable,并且让表单元格不可改,例如: ``` String[] headers = {"表头一", "表头二", "表头三"}; Object[][] cellData = null; DefaultTableModel model = new DefaultTableModel...
但是,这种方法需要精确计算表头和内容区域的相对位置,以避免滚动时出现重叠或错位。 2. **JavaScript监听滚动事件**:通过监听窗口或容器的滚动事件,动态调整表头的位置,使其始终保持在可见区域内。这需要考虑...