JTable的列宽与内容的自适应
JTable默认的各列宽度平均,下函数可以实现各列宽度与内容长度适应!来自互联网~
public void FitTableColumns(JTable myTable){
JTableHeader header = myTable.getTableHeader();
int rowCount = myTable.getRowCount();
Enumeration columns = myTable.getColumnModel().getColumns();
while(columns.hasMoreElements()){
TableColumn column = (TableColumn)columns.nextElement();
int col = header.getColumnModel().getColumnIndex(column.getIdentifier());
int width = (int)myTable.getTableHeader().getDefaultRenderer()
.getTableCellRendererComponent(myTable, column.getIdentifier()
, false, false, -1, col).getPreferredSize().getWidth();
for(int row = 0; row<rowCount; row++){
int preferedWidth = (int)myTable.getCellRenderer(row, col).getTableCellRendererComponent(myTable,
myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth();
width = Math.max(width, preferedWidth);
}
header.setResizingColumn(column); // 此行很重要
column.setWidth(width+myTable.getIntercellSpacing().width);
}
在表格数据变化后,请调用FitTableColumns(yourTableName);
网上很多,我试过,但大多不起作用,目前为止只发现这个行
原文地址:http://www.ieee.org.cn/dispbbs.asp?boardID=41&ID=52381
分享到:
相关推荐
以下是一种实现`JTable`列宽自适应的方法。 首先,我们需要理解`JTable`的结构。`JTable`由`TableModel`、`TableColumnModel`和`TableHeader`三部分组成。`TableModel`存储数据,`TableColumnModel`管理列,而`...
具体如何设置选择模式不在给定的部分内容中体现,但可以根据实际需求利用JTable的相关API进行设置。 综上所述,JTable作为Swing框架中的核心组件之一,在Java桌面应用程序中扮演着重要角色。通过对上述各项特性的...
JTable列宽自适应 #### 知识点: - **表格列宽设置**:通过`JTable`和`TableColumn`类可以获取和设置列宽。 #### 示例代码解析: ```java private int getPreferredWidthForColumn(JTable table, TableColumn col...
3. 自定义表格列:可以通过重写`DefaultTableModel`的方法来调整列的显示方式,如数据格式化、列宽自适应等。 4. 布局管理:使用`GridBagLayout`或`BoxLayout`等布局管理器,合理安排GUI组件的位置。 5. 添加事件...
11. **jTable**:jTable提供了完整的CRUD(创建、读取、更新、删除)功能,适合构建后台数据管理界面。 12. **Responsive Grid Table**:这款插件确保表格在不同设备上都能正确显示,实现自适应布局。 13. **...
通过将`autoResizeMode`属性设置为`AUTO_RESIZE_OFF`,可以让表格根据实际列宽自适应,从而实现水平滚动功能。 ##### 7. 解决Swing中的中文乱码问题 在使用Swing开发界面时,有时候会遇到中文乱码的问题,尤其是...