[Java lista] Swing kérdés

Mester József mesterj at freeweb.hu
2011. Ápr. 6., Sze, 20:24:08 CEST


Tisztelt Swing guru lista tagok.

A feladat:
Adatbázisból időnként ki kell olvasni adatokat ezeket egy JTabléban 
szeretném megjeleníteni. Az adatokat adott időközönként kell kiolvasni 
mondjuk 15 percenként.
A JTable -ben levő adatoknak ezután frissülniük kell. Közben a 
felhasználó kiválaszthat adatokat amelyekről részletesebb adatokat kell 
kiírni.
Eddig oda jutottam el, hogy a JTable-ben levő adatok frissítéséhez 
csináltam egy saját TableModel-t ebben van egy update() metódus ami 
meghívja a JPA lekérdezést és az onnan kapott
listát betölt a TableModel-be. Ezután fireTableDataChanged() hívással 
elméletileg tudatja a "világgal" , hogy a model-ben megváltoztak az adatok.
Ez hibátlanul működik mindaddig amíg valaki nem kattint egy sorra, hogy 
onnan adatokat kapjon.

public void valueChanged(ListSelectionEvent e) {
             selrow = EmberTable.getSelectedRow();
             kiiras = EmberTable.getModel().getValueAt(selrow, 1)+ " " + 
selrow;
             System.out.println("selrow értéke : "+ selrow);
             JOptionPane.showMessageDialog(EmberTable, kiiras);
         }

Itt a visszadott érték kiíratása világosan mutatja, hogy először jól 
vissza adja a program a valós értéket, majd rögtön utána egy -1 -et 
amitől rögtön dob egy
Exception in thread "AWT-EventQueue-0" 
java.lang.ArrayIndexOutOfBoundsException: -1
         at java.util.Vector.get(Vector.java:696)

ilyet.
Ha nem kellene 15 percenként újraolvasni az adatokat akkor tudnám a 
megoldást. Ha nem kellene engedni a júzert, hogy kattingasson akkor is.
De a kettő együtt nem megy .:-(

Merre induljak el?


További információk a(z) Javalist levelezőlistáról