I have a table with 3 columns and Jcombobox for each cell.
In the first and last JCombobox there are Sports and in the central a Criteria.
For each row I must use the values of the 3 column to make an Expression`(Sport s1, Criteria c, Sport s2);
I have tried to use a custom table model but with jcombobox I don't know how to configure
@Override public Object getValueAt(int arg0, int arg1) { // TODO Auto-generated method stub return null; }and
public Object setValueAt(int arg0, int arg1) { // TODO Auto-generated method stub return null; }to get and set the values with JCombobox selections.
`
I use this model to implements my Table:
class MyTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; int numSports = DataSavedSports.loadNumeroSports(); private final List<Sport> objects = DataSavedSports .loadListSports(); private final String[] columnNames = { "Name Sport 1", "Criteria", "Name Sport 2" }; private final Class<?>[] metaModell = new Class[] { String.class, Integer.class }; public int getColumnCount() { return columnNames.length; } public int getRowCount() { return objects.size(); } @Override public String getColumnName(int col) { return columnNames[col]; } private Sport getRow(int row) { return objects.get(row); } @Override public Class<?> getColumnClass(int c) { if (c < metaModell.length) return metaModell[c]; return Object.class; } @Override public boolean isCellEditable(int row, int col) { return true; } public List<Sport> getJobs() { return objects; } public void addRow(Sport v) { this.objects.add(v); fireTableDataChanged(); } @Override public Object getValueAt(int arg0, int arg1) { // TODO Auto-generated method stub return null; } } The methods that I have used to set the Jcombobox are something like this public void setColumnSports1(JTable table, TableColumn ColumnLav1) { // Set up the editor for the sport cells. final List<Sport> ListSports = DataSavedSports.loadListSports(); final JComboBox comboBox1 = new JComboBox(); for(Sport l : ListSports){ comboBox1.addItem(l.getIdSport()); } comboBox1.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent ie){ String str = (String)comboBox1.getSelectedItem(); System.out.println("TESTTTT"+str); } }); ColumnLav1.setCellEditor(new DefaultCellEditor(comboBox1)); // Set up tool tips for the sport cells. DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setToolTipText("Click for combo box"); ColumnLav1.setCellRenderer(renderer); }
PS
I must use the table in a JFrame and get the data of selected Jcombobox item, so the missing of the multiple inheritance, is another problem because of the overriding of various component.