JTable纵向表头,JTable表头纵向排列

本文介绍如何在Java中创建带有纵向表头的JTable,即使不使用JScrollPane也能显示表头。通过自定义RowHeaderTable类和RowHeaderRender渲染器,实现了表格的表头纵向排列效果,方便在桌面应用中模拟web表单的样式。
摘要由CSDN通过智能技术生成
 1、JTable通常要加到JScrollPane中才能显示带滚动条的表格,如果不加到JScrollPane中,默认不显示表头, 下面的方法可以让不在JScrollPane中的表格显示表头 container.setLayout(new BorderLayout()); container.add(table.getTableHeader(), BorderLayout.PAGE_START); container.add(table, BorderLayout.CENTER);
 
2、加在JScrollPane中的表格,表头在上部,JTable不支持表头纵向排列,在web页面form表单中经常用标签文本框的格式,在JTable中实现这个效果比较麻烦。下面的两个类可以实现表格的表头纵向排列的效果 RowHeaderTable用来创建带纵向表头的表格,用法类似JTable,不过没有继承JTable, getScrollPane()方法可以得到带JScrollPane的表格,不需要把生成的表格对象重新加到JScrollPane getScrollPane()得到的JScrollPane其实是由两个表格组成的,一个是纵向排列的表头(此处主要用到了JScrollPane的setRowHeaderView()方法),另一个是存储数据的表格
 
RowHeaderRender是纵向表头的绘制器,以此来设置纵向表头的显示效果
 
 
// 表格生成类 import  java.awt.Color; import  java.awt.Dimension; import  javax.swing.JScrollPane; import  javax.swing.JTable; import  javax.swing.table.DefaultTableModel; public   class  RowHeaderTable... {          private JTable dataTable;     private JTable headerTable;     private DefaultTableModel dataTableModel;     private DefaultTableModel headerTableModel;          public void setRowHeader(Object[] rowHeader)...{         if(headerTableModel == null)...{             headerTableModel = new DefaultTableModel(01);             headerTable = new JTable(headerTableModel);                          headerTable.setEnabled(false);             headerTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);             headerTable.getColumnModel().getColumn(0).setPreferredWidth(500);             headerTable.setPreferredScrollableViewportSize(             
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值