Hej. Mam problem z wywołaniem metody z innej klasy w JComboBox, które jest umieszczone w JTable. Wywoływana metoda nie odświeża tabeli po kliknięciu na pole z comboboxa (metoda ta, w klasie, w której jest umieszczona działa bez zarzutu), ale dopiero po kliknięciu na to pole, a następnie kliknięciu ponownie w to pole lub inne.
Klasa z ComboBoxem:

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;

public class RybyComboBox extends DefaultCellEditor implements ItemListener{

        public JComboBox comboBox;
        Ryba ryba;
       
        public RybyComboBox(Ryba ryba) {
               
                super(new JComboBox());
                comboBox = (JComboBox)getComponent();
                comboBox.addItem("Ryba");
                comboBox.addItem("Szczupak");
                comboBox.addItem("Sandacz");
                comboBox.addItem("Okon");
                comboBox.addItem("Bolen");
                comboBox.addItem("Sum");
                comboBox.addItem("Klen");
                comboBox.addItemListener(this);
                this.ryba = ryba;
        }

        public Component getTableCellEditorComponent(JTable table, Object value,
            boolean isSelected, int row, int column) {
        if (row == 0) {
            comboBox.setSelectedItem(value);
            comboBox.setVisible(true);
            return comboBox;
        }
        return null;
    }

        public Object nasluchCombboBoxa(Object object){
                       
                return object;
               
        }
       
        public void itemStateChanged(ItemEvent arg0) {
               
                 if (arg0.getStateChange() == ItemEvent.SELECTED) {
                      if(nasluchCombboBoxa(arg0.getItem())=="Bolen"){
        ryba.refreshAfterSelecting(nasluchCombboBoxa(arg0.getItem()));
//System.out.print("Bolen: "+nasluchCombboBoxa(arg0.getItem())+"\n");
     }else if(nasluchCombboBoxa(arg0.getItem())=="Szczupak"){
 System.out.print("Szczupak: "+nasluchCombboBoxa(arg0.getItem())+"\n");
        ryba.refreshAfterSelecting(nasluchCombboBoxa(arg0.getItem()));
                      }
                 } 

oraz ta metoda z klasy Ryba:


public void refreshAfterSelecting(Object obj){
                remove(scrollPane);
                RybyModel modello = new RybyModel();
                tableNew = new JTable(modello);
                ((RybyModel) tableNew.getModel()).setDane(SelectData(obj));
                                           tableNew.setAutoCreateRowSorter(true);
                scrollPane2 = new JScrollPane(tableNew);
                scrollPane2.setBounds(0,0,1275,400);
                getContentPane().add(scrollPane2);
                validate();
        } 

w tej metodzie, metoda SelectData(obj) również działa poprawnie, więc może mam źle zrobiony nasłuch ComboBoxa, ale nie wiem, jak powinno być? Sad. Pozdrawiam