[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