在jtable中创建组合框

时间:2010-11-18 18:33:09

标签: java swing jtable jcombobox

我的目标是提供像矩阵这样的界面,矩阵中的每个单元格都有2个值,用户将在两者中选择最佳。

所以我考虑使用jTable和组合框,问题出在我的矩阵中,列中每个单元格的值是不同的。但是下面的代码将组合框添加到表的整列中,如果我更改组合框值,它将针对整个表进行更改。如何将组合框插入表中,使每个组合框具有不同的值

javax.swing.JComboBox k = new javax.swing.JComboBox();
        k.addItem("1");
        k.addItem("2");
        k.addItem("3");
        k.setEnabled(true);
        k.setVisible(true);
this.jTable1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(k));

我也试过DefaultTableModel

代码是

  DefaultTableModel t =new javax.swing.table.DefaultTableModel();
    t.setColumnCount(10);
    t.setRowCount(10);
    t.setValueAt(k, 0, 0);
 jTable1.setModel(t);

但是我得到了gui中的输出

javax.swing.JComboBox[,0,0,0x0,invalid,layout=javax.swing.plaf.metal.MetalComboBoxUI$MetalComboBoxLayoutManager,alignmentX=0.0,alignmentY=0.0,border=,flags=16777544,maximumSize=,minimumSize=,preferredSize=,isEditable=false,lightWeightPopupEnabled=true,maximumRowCount=8,selectedItemReminder=1]

我尝试在setValueAt方法中将“k”作为JComboBox和JComponent进行类型转换,但这不起作用

有人请帮忙

1 个答案:

答案 0 :(得分:1)

重写getCellEditor(....)方法。例如:How to add unique JComboBoxes to a column in a JTable (Java)