JTable 标题中的多个可编辑行

时间:2023-04-19
本文介绍了JTable 标题中的多个可编辑行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我需要在 JTable 标题中有多个可编辑的行,以便同一个标题列可以同时包含 JTextField 和 JButton.

我已经找到了如何实现可编辑的标题单元格以及如何拆分标题单元格.然而事实证明,这些方法有些不同,我需要将它们融合在一起.

是否已经开发了多个可编辑的 JTable 标题行解决方案,这样我就不需要重新发明自行车了?

<小时>

到目前为止我发现了什么:

<小时>

可编辑的标题行代码取自:

代码:列组类:

import java.util.*;导入 java.awt.*;导入 javax.swing.*;导入 javax.swing.table.*;/*** 列组** @版本 1.0 10/20/98* @作者 Nobuo Tamemasa*/类列组 {受保护的 TableCellRenderer 渲染器;受保护的向量 v;受保护的字符串文本;受保护的int边距=0;公共列组(字符串文本){这(空,文本);}公共列组(TableCellRenderer 渲染器,字符串文本){if (renderer == null) {this.renderer = new DefaultTableCellRenderer() {公共组件 getTableCellRendererComponent(JTable 表,对象值,布尔 isSelected,布尔 hasFocus,int 行,int 列){JTableHeader header = table.getTableHeader();如果(标题!= null){setForeground(header.getForeground());setBackground(header.getBackground());setFont(header.getFont());}setHorizo​​ntalAlignment(JLabel.CENTER);setText((value == null) ? "" : value.toString());setBorder(UIManager.getBorder("TableHeader.cellBorder"));返回这个;}};} 别的 {this.renderer = 渲染器;}this.text = 文本;v = 新向量();}/*** @param obj TableColumn 或 ColumnGroup*/公共无效添加(对象 obj){如果(obj == null){返回;}v.addElement(obj);/*if(obj instanceof JTextField) {this.setHeaderRenderer(渲染器)}*