gpt4 book ai didi

java - 我可以将组合框添加到 JTable 的特定单元格中吗?

转载 作者:行者123 更新时间:2023-11-29 08:18:19 25 4
gpt4 key购买 nike

我想将组合框添加到 JTable 的单元格中。

model=new DefaultTableModel(data,col);
JTableHeader head=new JTableHeader();
head.setBackground(Color.BLUE);
table=new JTable(model);
table.add(head);
JComboBox combo = new JComboBox();
combo.addItem("Names");
combo.addItem("Antony");
combo.addItem("Victor");
combo.addItem("Ramkumar");
table.add(combo);

但我无法在单元格中获取组合框。是否可以设置组合框?

最佳答案

您需要设置JTable 的TableCellEditor。最好搜索 Java 教程,但这里有一个简短的解释。

JTable 使用三个主要类来工作:

1) TableModel:它的功能是表示表格有多少行和列,并为表格的数据提供服务,它的主要方法是getValue(row,col) 和setValue(value, row,col)。并触发事件以通知 JTable 重绘。

2) TableCellRenderer:它的主要目的是在 JTable 的单元格中绘制组件。此组件仅绘制(paint):不工作!如果你绘制一个 JComboBox 它不会在你点击它时进行 desplegate 或者如果你绘制一个 JCheckbox 它不会选择/取消选择。

3) TableCellEditor:它的主要目的是在 JTableCell 中绘制一个组件来编辑单元格的值。它接收事件并决定何时开始编辑,然后调用 getTableCellEditorComponent 方法返回编辑器组件。返回的组件必须启动事件,以便 TableCellEditor 知道何时停止编辑并获取值并使用它来调用 TableModel.setvalue...或取消编辑。

因此,要在 JTable 中显示 JComboBox,您必须创建自己的 TableCellEditor,如果您以前没有做过,这不是一件容易的事。

关于java - 我可以将组合框添加到 JTable 的特定单元格中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2543554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com