hej
tu poniżej zamieszczam trochę kodu do obsługo prostej tabelki. W moim projekcie działało to bardzo dobrze, sprawdź, czy o to ci chodziło:
import java.awt.event.;
import javax.swing.;
public class tabela extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JButton okButton=null,
defaultButton=null;
private JTable macierzTable=null;
private int[]domyslne={0,1,0,0,-1,0,0,0,0};
private JComboBox wyborBox=null;
public static void main(String[] args) {
new tabela();
}
public tabela(){
super("Test tabeli");
setLocation(200,200);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
macierzTable=new JTable(3,3);
wyborBox=new JComboBox();
for(int i=0,nr=-9;i<3;i++)
for(int j=0;j<3;j++)
wyborBox.addItem(""+nr++);
for(int i=0,nr=0;i<3;i++)
for(int j=0;j<3;j++){
wyborBox.addItem(""+nr);
macierzTable.setValueAt(""+domyslne[nr++],i,j);
}
macierzTable.setRowHeight(30);
for(int i=0;i<3;i++)
macierzTable.getColumnModel().getColumn(i).setCellEditor(new DefaultCellEditor(wyborBox));
add(macierzTable,"North");
defaultButton=new JButton("Przywróć domyślne");
defaultButton.addActionListener(this);
add(defaultButton,"Center");
okButton=new JButton("OK");
okButton.addActionListener(this);
add(okButton,"South");
pack();
setVisible(true);
}
public void przywrocDomyslne(){
for(int i=0,nr=0;i<3;i++)
for(int j=0;j<3;j++)
macierzTable.setValueAt(""+domyslne[nr++],i,j);
}
public void actionPerformed(ActionEvent evt) {
if(evt.getSource()==okButton){
for(int i=0, k=0;i<3;i++)
for(int j=0;j<3;j++)
System.out.println("Element "+k+++" ma wartość: "+macierzTable.getValueAt(i,j));
}
else if(evt.getSource()==defaultButton){
for(int i=0,nr=0;i<3;i++)
for(int j=0;j<3;j++)
macierzTable.setValueAt(""+domyslne[nr++],i,j);
}
}
}
jeśli chcesz dodawać własne wartości po prostu usuń linię:
macierzTable.getColumnModel().getColumn(i).setCellEditor(new DefaultCellEditor(wyborBox));