problem z jTable1.setValueAt

0

Witam, walczę z małym problemem jakim jest zmiana komórki w tabeli (jTable). Na początku temat wydawał się oczywisty bo napisałem metodę, która była wywoływana z pod przycisku myszki po kliknięciu na komponent. Wszystko działa :) ale gdy wywołuję ją nie jako zdarzenie przestaje działać.
Kod metody:

    
public void renderCell(String p) {

    for (int a = 0; a < jTable1.getRowCount(); a++) {
    String pp = Long.toString((Long) jTable1.getValueAt(a, 0));
    if (pp.equals(p)) {
    jTable1.setValueAt("qaz", a, 1);
    jTable1.repaint();
    jTable1.revalidate();
    pp = "";
    System.out.println("render:" + p);
    }
    }

    }

Wymyśliłem sobie, że szukam wartości "p" w tabeli i zamieniam ją na "qaz". Jak, już wcześniej wspomniałem metoda wykonana przez zdarzenie jakim było kliknięcie myszką działała poprawnie. Gdy wywołam ją z innej klasy

....
KlientJFrame klient = new KlientJFrame();
klient.renderCell("1");
....

przestaje działać.
Bardzo proszę o pomoc.
Pozdrawiam.

0

Wywołujesz metodę na rzecz złego obiektu

   KlientJFrame klient = new KlientJFrame();
   klient.renderCell("1");

zmienna klient jest tworzona operatorem new i nie ma nic wspólnego z Twoją klasą wyświetlającą tabelkę.
Przekaż do tej innej klasy referencję do klasy z tabelką.

0

dziękuję, teraz rozumiem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1