Java在for循环中添加了JTable中的组合框

时间:2014-08-21 17:21:18

标签: java swing jtable jcombobox

我有一个显示数据的表:ID,NAME,CATEGORY,COMPANY。从数据库中检索数据。我想将一个ComboBox添加到列CATEGORY。以便能够选择他们在数据库中的任何类别。

List<Item> item;
JTable itemTable = new JTable();
JScrollPane itemScroll = new JScrollPane();
DefaultTableModel itemmodel = new DefaultTableModel();

        itemmodel.setRowCount(0);
        item = model.getItem();

        for (Item ite : item) {
            itemmodel.addRow(new Object[] { ite.getId(), ite.getName(),
                    ite.getCategory(), ite.getCompany() });
        }
        item.clear();

然后我正确地将数据添加到JFrame并显示所有内容。我阅读了文档,但我不知道如何在我的例子中使用这些例子。

要显示相同的类别,请通过

单独下载jTable和数据
        tablemodel.setRowCount(0);
        category = model.getCategory();

        for (Category cat: categoryList) {
            tablemodel
                    .addRow(new Object[] { cat.getId(), cat.getName() });
        }
        categoryList.clear();

2 个答案:

答案 0 :(得分:2)

您可以使用显示herehere的方法从数据库中获取类别。您可以使用显示here的方法将结果JComboBox指定为表格列CellEditor

答案 1 :(得分:1)

我这样解决了它看起来很棒。这是解决方案是否正确?如何在Combobox中存储类别ID?

        itemmodel.setRowCount(0);
        item = model.getItem();

        people = model.getCategory();

        for (Category cate : categoryList) {
            categoryBox.addItem(cate.getName());
        }
        for (Item ite : item) {
            itemmodel.addRow(new Object[] { ite.getId(),ite.getName(),  
                    ite.getCategory(), ite.getCompany() });
        }
        item.clear();

        TableColumn categoryColumn = itemTable.getColumnModel().getColumn(2);
        categoryColumn.setCellEditor(new DefaultCellEditor(categoryBox));