我有JTable的问题,我试图在每一行JComboBoxes和JTextFields,但当我加载应用程序时,我的表是空的。函数getCmb *和getTxt *返回JComboBox和JTextField并且工作正常,我检查了。
JTable tblCommands;
String[] columnTitles=new String[]{"Command","Offset","Type","Value","Units","Value Type","R/W"};
Object[][] data=new Object[20][7];
int row=0;
for(MessageCSVView message:messageContainer.getRows()){
data[row][0]=message.getCmbName();//this works
data[row][1]=message.getCmbOffset();//this works
data[row][2]=message.getTxtType();//this works
data[row][3]=message.getTxtValue();//this works
data[row][4]=message.getTxtUnit();//this works
data[row][5]=message.getTxtValueType();//this works
data[row][6]=message.getCmbRW();//this works
row++;
}
tblCommands=new JTable(data,columnTitles);
有谁可以告诉我我做错了什么?
答案 0 :(得分:2)
您误解了输入与JTable
一起使用的方式。
您需要创建TableCellEditor
实施并将其添加到表格的每一列。
请查看JTable
上的Swing教程以获取更多信息。
答案 1 :(得分:1)
示例代码段
public class JComboBoxCellEditor extends DefaultCellEditor {
JComboBox comboBox;
public JComboBoxCellEditor() {
super(new JComboBox());
comboBox = (JComboBox) getComponent();
}
}
然后包括下面的内容,
TableColumn column = myTable.getColumnModel().getColumn(0);
column.setCellEditor(new JComboBoxCellEditor());
进一步阅读:
这是你最好的选择,Swing tutorial for JTable。