添加组件后,JTable为空

时间:2011-05-18 09:25:54

标签: java swing jtable

我有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);

有谁可以告诉我我做错了什么?

2 个答案:

答案 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