這種類型的帖子之前已經處理過,但我遇到的問題是基於我的代碼的結構。將JCombo列添加到JTable
我只是簡單地試圖添加一個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));
當我運行這段代碼時,它只在第三列中顯示爲真,而不是在JcomboBox中? 任何人都可以找出問題嗎? 非常感謝
'布爾英語= FALSE; if(p.isEnglishSpeaker()== true) { english = true; } else { english = false; '也可以寫成:'boolean english = p.isEnglishSpeaker();'。或者甚至更簡單,放下之前寫的所有東西,只需調用:'model.addRow(new Object [] {p.getName(),p.getAge(),p.isEnglishSpeaker());' – 2013-05-05 10:27:41
查看本[回答]( http://stackoverflow.com/questions/11226926/java-jtable-with-jcombobox/11227034#11227034)。 – 2013-05-05 10:35:40
感謝您的回覆。我只是改變了更簡單的方式(不知道我是如何錯過的)。但它仍然只返回false,而不是實際的JComboBox?謝謝 – 2013-05-05 10:36:07