java - 更改TableModel结构

标签 java swing jtable tablemodel defaulttablemodel

所以情况是我有一个 JTable,其中有许多 JComboBox 作为单元格。在选择 JComboBox 的元素时,需要更改表模型的结构。我还有一个“输出表”,它下面监听 JComboBox 的选择并相应地重新验证,因此,我需要保持查询表的模型相同,以便它可以重用监听器。如何更改表模型的结构?

DefaultTableModel QueryTableModel = new DefaultTableModel(dropDownUserSelection, resultsListHeadings );     
queryTable.setModel(QueryTableModel);

JComboBox box = new JComboBox(boxModel);      
queryTable.getColumnModel().getColumn(i).setCellEditor(new DefaultCellEditor(box));

如果我问的问题在其他地方已经被问过,我深表歉意,但我已经四处寻找并找不到我要找的东西。

谢谢

最佳答案

TableModel 有责任通知父表(或任何监听者)模型的更改。

可用的常规事件包括数据更改、单元格更新、行插入/删除以及结构更改。

“结构已更改”告诉父表表模型的结构(列数和/或列名称和/或类型已更改)并且它应该完全更新自身。

有多种方法可以实现这一目标。您可以让现有的表模型相应地进行 self 更改并触发“结构更改”事件,或者您可以构建一个新的表模型并将其应用到 JTable,具体取决于您的需要。

关于java - 更改TableModel结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14865297/

相关文章:

Java 游戏 Hitbox 检测和圆角

java - 为什么我的 JButton 显示为 JFrame 的完整大小?

java - 线程和中断

java - 自定义 JFileChooser。如何将 JComboBox 添加到 JFileChooser 中

java - 为什么这个小程序不工作/显示图像?

Java JTable 列标题不显示

java - 如何设置 JScrollPane 只显示特定数量的行

java - jtable - 访问行后面的对象

java - Java 多线程基准测试

Java:等于和==