【发布时间】:2015-10-16 00:52:58
【问题描述】:
我想用 JCombobox 创建一个 JTable。在具有不同数据的 JComboBox 的 JTable 3 列中。我尝试通过 DefaultCellEditor,但所有 JCombobox 都具有相同的数据。
谁能帮我实现同样的目标。
提前致谢。
public class CustomComboEditor extends DefaultCellEditor {
private DefaultComboBoxModel model;
private DefaultComboBoxModel model1;
private DefaultComboBoxModel model2;
public CustomComboEditor() {
super(new JComboBox());
this.model = (DefaultComboBoxModel) ((JComboBox) getComponent()).getModel();
this.model1 = (DefaultComboBoxModel) ((JComboBox) getComponent()).getModel();
this.model2 = (DefaultComboBoxModel) ((JComboBox) getComponent()).getModel();
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int col) {
try {
model.removeAllElements();
model.addElement("");
String sql = "select query 1";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while (rs.next()) {
model.addElement(rs.getString(1));
}
model1.removeAllElements();
model1.addElement("");
String sql1 = "select query 2";
pst = conn.prepareStatement(sql1);
rs = pst.executeQuery();
while (rs.next()) {
model1.addElement(rs.getString(1));
}
/*model2.removeAllElements();
model2.addElement("");
model2.addElement("Male");
model2.addElement("Female");*/
} catch (SQLException ex) {
Logger.getLogger(Order_Enquiry.class.getName()).log(Level.SEVERE, null, ex);
}
return super.getTableCellEditorComponent(table, value, isSelected, row, col);
}
}
【问题讨论】:
-
@Andrew Thompson,是的,我接受,但这里它没有显示任何类型的异常(SQL、Normal)。问题是 public CustomComboEditor() { super(new JComboBox()); this.model = (DefaultComboBoxModel) ((JComboBox) getComponent()).getModel(); this.model1 = (DefaultComboBoxModel) ((JComboBox) getComponent()).getModel(); this.model2 = (DefaultComboBoxModel) ((JComboBox) getComponent()).getModel(); },我创建了单个JCombobox,而不是可以使用多个JCombobox,我尝试过,但没有太多运气。
-
"是的,我接受,.." 不要“接受”,edit "..但这里没有显示任何内容有点例外..” 使用该代码,您会感到惊讶吗?!?顺便说一句 - 1) 不要将不可编译的代码 sn-ps 放在它们不可读的 cmets 中。 2) 请按照我的第一个建议采取行动。我现在已经投票关闭,因为缺少建议。
-
"现在我编辑了..." 然而仍然没有 MCVE。靠在这堵墙上就够了。我走了……