如何设置jtable内jcombobox的默认选择值?

时间:2016-09-28 21:19:28

标签: java swing jtable jcombobox

model = new DefaultComboBoxModel<>();
    model.addElement("Absent");
    model.addElement("Present");
    model.addElement("On Leave");
    model.setSelectedItem("Absent");

    JComboBox cbox = new JComboBox(model);
    DefaultTableModel attModel = (DefaultTableModel)tableEmpAtt.getModel();
    TableColumn col = tableEmpAtt.getColumnModel().getColumn(3);
    col.setCellEditor(new DefaultCellEditor(cbox));

添加行:

ResultSet rs = st.executeQuery("select Employee_ID,First_Name,Last_Name,Contact_No from Employee_Information");
        while(rs.next()){
            attModel.addRow(new Object[]{rs.getInt(1),rs.getString(2)+" "+rs.getString(3),rs.getString(4)});
        }

这是它在负载上的外观 this is how it looks on load

这就是单击状态下的单元格时的外观 this is how it looks when a cell under presence is clicked once

我想设置它,以便当它第一次加载时,列存在的默认值为“缺席”

1 个答案:

答案 0 :(得分:2)

  

我想设置它,以便当它第一次加载时,列存在的默认值为“缺席”

组合框仅选择TableModel中的值。

因此,当您添加每一行时,您需要在表模型中添加“Absent”:

//attModel.addRow(new Object[]{rs.getInt(1),rs.getString(2)+" "+rs.getString(3),rs.getString(4)});

Vector<Object> row = new Vector<Object>();
row.addElement(rs.getInt(1));
row.addElement(rs.getString(2) + " " + rs.getString(3));
row.addElement(rs.getString(4));
row.addElement("Absent");
attModel.addRow( row );