gpt4 book ai didi

java - 将 JCombo 列添加到 JTable

转载 作者:行者123 更新时间:2023-11-30 04:23:45 25 4
gpt4 key购买 nike

这种类型的帖子以前已经处理过,但我遇到了基于我的代码结构的问题。

我只是想将 JComboBox 添加到最后一列中的所有行。代码如下。

//Return Person objects from a method
ArrayList<Person> people = getPersonList();

String[] columnNames {"Name", "Age", "English Speaker?" };

DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(columnNames);

JTable table = new JTable(model);

//Create JComboBox for last column (English Speaker?)
JComboBox<Integer> englishCombo = new JComboBox<>();

int count = 1;

//For loop to add each Person to there rows
//Also add a boolean value to determine check box
for(Person p: people)
{
boolean english =false;

if(p.isEnglishSpeaker() == true)
{
english = true;
}
else
{
english = false;
}
questionCombo.addItem(count);

model.addRow(new Object[]{p.getName(), p.getAge(), english);
}

//Get 3rd column (English Speaker)
TableColumn englishColumn = table.getColumnModel().getColumn(2);
//Add JComboBox to English Speaker
englishColumn.setCellEditor(new DefaultCellEditor(englishCombo));

当我运行此代码时,它仅在第三列中显示 true 或 false,而不是 JcomboBox?有人能找出问题所在吗?非常感谢

最佳答案

您已指定自定义 editor ;现在您需要解决renderer 。我看到两种可能性:

  1. 使用JComboBox<String>与所需的truefalse值,如图 here .

    image1

  2. 使用默认渲染器和编辑器 JCheckBox ,对于类型为 Boolean.class 的值,如图herehere .

image2

关于java - 将 JCombo 列添加到 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383502/

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