JComboBox在每个行,同一列的JTable中具有不同的值

时间:2013-04-01 21:49:37

标签: java swing jtable jcombobox

我在JComboBox中有一个JTable,但当我插入一个包含JComboBox新值的新行时,所有JComboBox都是JComboBox行具有该值。如何为第3列中的每一行cc = new JComboBox(); cc.addItem(jComboBox5.getSelectedItem()+"/"+jComboBox6.getSelectedItem()+"/"+jComboBox7.getSelectedItem()+" "+jComboBox1.getSelectedItem()+"."+jComboBox2.getSelectedItem()); DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setToolTipText("CLICCA PER LE DATE"); Object[][] stringa = {{jTextField1.getText(), jTextField2.getText(),jTextField3.getText()}}; model.addRow(stringa[0]); int n=model.getRowCount(); for(int i=0; i<n;i++){ if(i==n-1){ //HERE HOW CAN I CHOOSE THE ROW WHERE PUT THIS JCOMBOBOX? BECAUSE WITH THIS CODE I CHANGE THE VALUES OF ALL COMBOBOXES WITH NEW VALUES jTable1.getColumnModel().getColumn(3).setCellEditor(new DefaultCellEditor(cc)); jTable1.getColumnModel().getColumn(3).setCellRenderer(renderer);} } 设置不同的值?我试过这段代码:

{{1}}

但是我很抱歉这个喊道。

1 个答案:

答案 0 :(得分:2)

根据我的评论:

  • 您需要在TableCellEditor中的JComboBox中设置数据,该数据会添加到相应的TableColumn中。
  • 您还没有告诉我们您将使用什么标准来帮助您决定如何更改组合框中显示的对象。它是基于表行号吗?还是基于行中保存的数据?
  • 可以通过getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)方法获取行号和数据。您将返回一个JComboBox,其项目已根据您的条件填写,无论当前是什么。
  • 请避免在您的问题或其标题中使用ALL-UPPER CASE,因为这相当于SHOUTING,并且看起来并不友好。