Vector ArrayIndexOutOfBoundsException SwingUtilities.invokeL

Status
Nicht offen für weitere Antworten.

Giftstachel

Bekanntes Mitglied
SwingUtilities.invokeLater wie?

liebe großmeister der Javaprogrammierung.

ich habe mal wieder ein wirklich noobiges problem, und auch schon einen lösungsansatz gefunden. nur wie nutze ich diesen?

gehts sich um folgendes.
ich habe eine table mit defaultTableModel.
diese macht ein fireTableDataChange().
die daten kommen aus einem vector.
da Swing nicht threadsicher ist, kann es passieren, das im vector die daten nicht rechtzeitig bereit gestellt werden können, sondern Swing zwischen leeren des vectors, und neu befüllen schon auf diesen zugreift, was dann zwangläufig zu einer java.lang.ArrayIndexOutOfBoundsException führt.

nun habe ich nach langem suchen gefunden, das man dieses mit

Code:
SwingUtilities.invokeLater(new Runnable() {
     public void run() {
            //dein Code...
     }
}
korrigieren kann.

mein problem ist leider, das ich noch nicht so swing sicher bin, das ich diese info 100% verwerten, und nutzen kann.

mein code, in den dieses vermutlich hinein muss ist hier

Code:
public MainTable()
    {
		
        super("MainTable");
        
        while (isrunning == true)
        {
            	if (firstrun == 0)
                {
                      this.TabelleErzeugen(holeDaten());
                      this.initGUI();
                      firstrun = 1;
                }  
                this.TabelleUpdate(this.holeDaten());   <----- HIER?
                this.setDax();
             
            catch (NullPointerException nullpe){}
            catch (ArrayIndexOutOfBoundsException aioobex){}
            this.holeDaten();
        }
    }

also in etwa so:

Code:
public MainTable()
    {
		
        super("MainTable");
        
        while (isrunning == true)
        {  
                 if (firstrun == 0)
                {
                      this.TabelleErzeugen(holeDaten());
                      this.initGUI();
                      firstrun = 1;
                }  
            	SwingUtilities.invokeLater(new Runnable() {
            		public void run() {
            				this.TabelleUpdate(this.holeDaten());
            		}
            	});
                this.setDax();
                e.getMessage();
            }
            catch (NullPointerException nullpe){}
            catch (ArrayIndexOutOfBoundsException aioobex){}
            this.holeDaten();
        }

dort verhält es sich jedoch so, das er mir sagt, -> The method holeDaten() is undefined for the type new Runnable(){}

wie lös ich nun mein problemchen? leider geht das nicht mit einem becherchen :(
oder gehe ich die ganze sache gedanklich falsch an?

wie immer einen herzlichen dank an alle helfer.
 
S

SlaterB

Gast
MainTable.this.TabelleUpdate(MainTable.this.holeDaten());

die Exception kann außerhalb der run dann nicht mehr auftreten,
was du da mit der Schleife machst ist auch etwas fraglich

----------

Operationen klein schreiben!
 

Giftstachel

Bekanntes Mitglied
Super. Danke. genau das, was mir nicht eingefallen ist :)

die schleife ist dazu da, um eine datenbankabfrage auszulösen, und diese daten dann in den vector zu übergeben.
 
S

SlaterB

Gast
weil diese bisher nur ein kurzzeitiges Anzeigeproblem ohne Folgen für das Programm war
-> nun wird die Anzeige durch SwingUtilities.invokeLater() sauberer gesteuert
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Swing JTable und Vector AWT, Swing, JavaFX & SWT 4
A Swing JTable mit Vector befüllen AWT, Swing, JavaFX & SWT 2
H Frage zu übergebenem Vector bzw. Boolean AWT, Swing, JavaFX & SWT 3
C JList mit Vector füllen AWT, Swing, JavaFX & SWT 3
X Swing Daten aus Vector ins TableModel ?? AWT, Swing, JavaFX & SWT 12
S vector Icon AWT, Swing, JavaFX & SWT 3
S JList mit Vector als Model? AWT, Swing, JavaFX & SWT 12
L Swing JList - Warum Vector und nicht List ? AWT, Swing, JavaFX & SWT 4
A JTable Vector mit Daten Ordnen bei setAutoCreateRowS AWT, Swing, JavaFX & SWT 8
N JCombobox vector problem. AWT, Swing, JavaFX & SWT 10
G fireTableDataChanged() geht das auch ohne vector? AWT, Swing, JavaFX & SWT 13
V Vector->TableModel->RowSorter:Bei Markierung Index im AWT, Swing, JavaFX & SWT 2
B JTable Wert in Vector einlesen AWT, Swing, JavaFX & SWT 4
B JTable Vector Exception bei eigenem CellEditor AWT, Swing, JavaFX & SWT 3
F AbstractTableModel + Vector - Wie Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
G Problem mit JTable / mit dem Eintragen der Daten aus Vector AWT, Swing, JavaFX & SWT 4
S Array/Vector für JTable aufbereiten AWT, Swing, JavaFX & SWT 4
D Vector Datenstruktur für JTable will nicht :-( AWT, Swing, JavaFX & SWT 6
X Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 AWT, Swing, JavaFX & SWT 6
A ArrayIndexOutOfBoundsException - analyse? AWT, Swing, JavaFX & SWT 4
A ArrayIndexOutOfBoundsException bei MyTableColumnModel AWT, Swing, JavaFX & SWT 2
N Beim Ziehen der Spalten immer ArrayIndexOutOfBoundsException AWT, Swing, JavaFX & SWT 4
C [JTable] ArrayIndexOutOfBoundsException im Model AWT, Swing, JavaFX & SWT 8
V java.lang.ArrayIndexOutOfBoundsException: 143 AWT, Swing, JavaFX & SWT 2
ms_cikar Update swingUtilities Repaint in der Schleife AWT, Swing, JavaFX & SWT 3
Ollek Swing SwingUtilities invokeLater und invokeAndWait AWT, Swing, JavaFX & SWT 4
W Swing SwingUtilities.invokeLater wie konsequent anwenden? AWT, Swing, JavaFX & SWT 3
Dit_ SwingUtilities.invokeLater und Modaler JDialog AWT, Swing, JavaFX & SWT 11
Dit_ Frage zum Thema SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 5
G LookAndFeel SwingUtilities.updateComponentTreeUI(frame) <- wie heißt mein Frame? AWT, Swing, JavaFX & SWT 5
G Frage zu SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 16
J Alternative für SwingUtilities Schachteln AWT, Swing, JavaFX & SWT 2
G Frage zu SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 9
B SwingUtilities.invokeLater() AWT, Swing, JavaFX & SWT 12

Ähnliche Java Themen


Oben