Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1

Xearox

Mitglied
Moin moin,

ich erhalte hierbei immer wieder den unten angegeben Fehler. Leider lässt sich aus dem StackTrace nicht heraus lesen, wo dieser ganz genau sein soll. Ich konnte es aber auf den Code Ausschnitt dezimieren.

Btw. ist das die einzige Möglichkeit, auf eine Sub-Componente im JTabbedPane zuzugreifen? Oder kann man auch direkt auf die entsprechende Componente drauf zu greifen, vielleicht liegt hier schon der Fehler.

Die TabbedPane ist als Variable statisch in der Hauptklasse Client deklariert und wird beim starten instanziert. Gleiche gilt für das TextPane, ebenfalls statisch deklariert. Anders wusste ich mir nicht zu helfen, um auf die Entsprechenden Komponenten zuzugreifen von einer anderen Klasse aus.

Die Klasse, in der der Codeausschnitt hinterlegt ist, wird von der Hauptklasse beim starten instanziert.

Java:
boolean tabExists = false;
                    for(int i = 0; i < Client.tabbedPane.getTabCount(); i++){
                        if(Client.tabbedPane.getTitleAt(i).equalsIgnoreCase(sender)){
                            JPanel jPanel = null;
                            Component component = Client.tabbedPane.getComponent(i);
                            if(component instanceof JPanel){
                                jPanel = (JPanel) component;
                                component = jPanel.getComponent(1);
                                if(component instanceof JScrollPane){
                                    JScrollPane jScrollPane = (JScrollPane) component;
                                    component = jScrollPane.getComponent(0);
                                    if(component instanceof JViewport){
                                        JViewport jViewport = (JViewport)component;
                                        component = jViewport.getComponent(0);
                                        if(component instanceof JTextPane){
                                            JTextPane textPane = (JTextPane)component;
                                            HTMLEditorKit eKit = new HTMLEditorKit();
                                            textPane.setEditorKit(eKit);
                                            String txt = client.createHTMLText(textPane.getText(), sender, message);
                                            client.appendNewText(textPane, txt);
                                            Client.jTextPaneChatHistory = textPane;
                                        }
                                    }
                                 
                                }
                            }
                            tabExists = true;
                        }
                    }

Code:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
    at javax.swing.text.BoxView.getOffset(BoxView.java:1101)
    at javax.swing.text.BoxView.childAllocation(BoxView.java:695)
    at javax.swing.text.CompositeView.getChildAllocation(CompositeView.java:232)
    at javax.swing.text.BoxView.getChildAllocation(BoxView.java:453)
    at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.calculateViewPosition(BasicTextUI.java:1999)
    at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.layoutContainer(BasicTextUI.java:1975)
    at java.awt.Container.layout(Container.java:1510)
    at java.awt.Container.doLayout(Container.java:1499)
    at java.awt.Container.validateTree(Container.java:1695)
    at java.awt.Container.validateTree(Container.java:1704)
    at java.awt.Container.validateTree(Container.java:1704)
    at java.awt.Container.validate(Container.java:1630)
    at javax.swing.JViewport.validateView(JViewport.java:482)
    at javax.swing.JViewport.scrollRectToVisible(JViewport.java:393)
    at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3111)
    at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1313)
    at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1287)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


Hoffe hier kann mir evtl. jemand helfen =) Danke
 

JCODA

Top Contributor
Es ist meistens keine gute Idee den Componenten-Baum zu durchlaufen.
Du erstellst doch an anderer Stelle bestimmt die JTextPane, die du "rausfischen" möchtest. Speichere diese in einer Liste ab und übergebe diese Liste an die Klasse, die sie bearbeiten soll.
(Falls es nur eine "richtige" JTextPane gibt, speichere dir ggf. nur eine Referenz, da brauchst du dann keine Liste.)
 

Meniskusschaden

Top Contributor
Ich stimme @JCODA zu. Außerdem finde ich die ungeprüften Abfragen getComponent(1)bzw.getComponent(0)sehr verdächtig. Bist du sicher, dass wirklich jedes Panel zwei Komponenten enthält und jede ScrollPane eine etc.? Und bist du sicher, dass die gewünschte ScrollPane die zweite Komponente ist und nicht die erste oder dritte sein kann? Das sieht ziemlich wackelig aus.
 

Xearox

Mitglied
Ich stimme @JCODA zu. Außerdem finde ich die ungeprüften Abfragen getComponent(1)bzw.getComponent(0)sehr verdächtig. Bist du sicher, dass wirklich jedes Panel zwei Komponenten enthält und jede ScrollPane eine etc.? Und bist du sicher, dass die gewünschte ScrollPane die zweite Komponente ist und nicht die erste oder dritte sein kann? Das sieht ziemlich wackelig aus.

Also ich bin mir sicher, das jeder tabbedPane Tab die selbe Anzahl an Componenten hat, es sei denn, da ändert sich irgendwas, wovon ich nicht weiß. Einen Tab erstelle ich zur Laufzeit.

@JCODA wenn ich das richtig verstanden habe, soll ich die JTextPane Componente in eine HashMap speichern. Beispiel: HashMap<String, JTextPane> textPaneMap = new HashMap<String, JTextPane>();

String dient dazu, um den Namen des Tabs zu speichern und halt das zweite für die Componente selbst. Anschließend sollte ich ja theoretisch darauf zugreifen können, oder irre ich mich da?
 

Meniskusschaden

Top Contributor
Also ich bin mir sicher, das jeder tabbedPane Tab die selbe Anzahl an Componenten hat, es sei denn, da ändert sich irgendwas, wovon ich nicht weiß. Einen Tab erstelle ich zur Laufzeit.
Mag sein, dass jeder Tab dieselbe Anzahl an Komponenten hat. Das war aber nicht die Frage. Entscheidend ist, ob jedes JPanel-Objekt mindestens zwei Komponenten enthält. Entsprechend ob jedes JScrollPane, das sich in einem JPanel befindet mindestens eine Komponente enthält und so weiter.
 
Zuletzt bearbeitet:

Xearox

Mitglied
Mag sein, dass jeder Tab dieselbe Anzahl an Komponenten hat. Das war aber nicht die Frage. Entscheidend ist, ob jedes JPanel-Objekt mindestens zwei Komponenten enthält. Entsprechend ob jedes JScrollPane, das sich in einem JPanel befindet mindestens eine Komponente enthält und so weiter.

Genau, das wollte ich damit Aussagen.
2016-08-26 14_26_51-Java EE - FriendServerClient_src_de_xearox_client_Client.java - Eclipse.png

Das sollte sich ja während der Laufzeit auch nicht ändern. Nehme ich mal an.
Aber ich bin das grade mit eine HashMap am versuchen, allerdings bin ich grade zu doof dafür, diese vernünftig zu erstellen, bekomme immer eine NPE.
 

Xearox

Mitglied
Funktioniert jetzt aber =) Der Fehler ist fott. Ich danke dir für den Denkanstoß @JCODA das mit der HashMap klappt wunderbar =)

Leider kann ich die Anwendung noch nicht mit mehreren Leuten testen(hab nicht soviele) :/ :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
A Swing Exception in thread "AWT-EventQueue-0" AWT, Swing, JavaFX & SWT 1
L exception in thread awt-eventqueue-0 java.lang.nullpointerexception AWT, Swing, JavaFX & SWT 2
S Swing Exception in thread "AWT-EventQueue-0" bei Jlabel AWT, Swing, JavaFX & SWT 4
C Event Handling Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException AWT, Swing, JavaFX & SWT 43
F Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: null AWT, Swing, JavaFX & SWT 5
S Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 7
Lony AbstractTableModel Exception in thread "AWT-EventQueue- AWT, Swing, JavaFX & SWT 3
A Exception in thread "AWT-EventQueue-0" java.lang.N AWT, Swing, JavaFX & SWT 4
T Exception in thread "main" java.lang.NoClassDefFoundError AWT, Swing, JavaFX & SWT 4
G Exception javafx Thread -> caused by removing children while in EventHandler AWT, Swing, JavaFX & SWT 28
S JavaFX Exception in thread "JavaFX Application Thread" AWT, Swing, JavaFX & SWT 3
M Exception in thread "Thread-3" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 18
lumo SWT Exception in thread "main" org.eclipse.swt.SWTError: No more handles AWT, Swing, JavaFX & SWT 3
N Exception Behandlung mit setDefaultUncaughtExceptionHandler, insbesondere im EventDispatcher Thread AWT, Swing, JavaFX & SWT 4
M Exception Meldung aus Thread an jTextField1 übergeben AWT, Swing, JavaFX & SWT 6
H Exception: java.lang.ClassCastException AWT, Swing, JavaFX & SWT 2
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
Z JavaFX Exception in Application start method AWT, Swing, JavaFX & SWT 2
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
R AWT no such child Exception AWT, Swing, JavaFX & SWT 7
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
W JavaFX Warum kriege ich eine Exception? AWT, Swing, JavaFX & SWT 23
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Exception Message von Model Class via Controller in View darstellen AWT, Swing, JavaFX & SWT 39
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
VfL_Freak AWT Exception in der Eventqueue AWT, Swing, JavaFX & SWT 8
A Swing Null Pointer Exception obwohl Objekt initialisiert AWT, Swing, JavaFX & SWT 21
H JavaFX Ein View vorschalten Exception AWT, Swing, JavaFX & SWT 7
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
M 3D-Grafik Mac Java 3D in Eclipse Exception AWT, Swing, JavaFX & SWT 0
I Opencv Imgproc.floodfill exception AWT, Swing, JavaFX & SWT 1
T Gui Exception AWT, Swing, JavaFX & SWT 2
X Auf Fensterklasse zugreifen (Nullpointer Exception) AWT, Swing, JavaFX & SWT 2
M Threads - nicht erklärbare Exception AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
J Einträge aus Table löschen ohne Exception AWT, Swing, JavaFX & SWT 6
V Swing Nullpointer Exception bei JFormattedTextField AWT, Swing, JavaFX & SWT 4
G Swing Exception: Comparison method violates its general contract! AWT, Swing, JavaFX & SWT 13
S Exception bei BufferStrategy AWT, Swing, JavaFX & SWT 8
H Swing Exception's und MVC AWT, Swing, JavaFX & SWT 35
R Swing Mit Swing eine throws Exception Methode öffnen AWT, Swing, JavaFX & SWT 3
K AWT DataBuffer in DataBufferInt Exception AWT, Swing, JavaFX & SWT 2
S Swing AWT-Exception bei JTable mit JComboBox beim Löschen der letzten Zeile AWT, Swing, JavaFX & SWT 3
O Immer Exception in AWT-EventQueue-0 AWT, Swing, JavaFX & SWT 5
F Swing Seltsame Exception AWT, Swing, JavaFX & SWT 5
R Swing Files auflisten (JButton, JList, Exception) AWT, Swing, JavaFX & SWT 4
V LookAndFeel Nullpoint Exception AWT, Swing, JavaFX & SWT 2
Airwolf89 Swing Exception beim Füllen einer Tabelle AWT, Swing, JavaFX & SWT 10
hdi SWT Zwei mal Shell öffnen = Exception AWT, Swing, JavaFX & SWT 6
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
O Exception bei repaint AWT, Swing, JavaFX & SWT 3
D Bild zeichnen lassen aus array, null pointer Exception AWT, Swing, JavaFX & SWT 2
B JTable ValueChanged verursacht Exception AWT, Swing, JavaFX & SWT 3
Daniel_L JTable, (Auto-)RowSorter und NullPointer-Exception AWT, Swing, JavaFX & SWT 6
M Exception in eine JTextArea anzeigen AWT, Swing, JavaFX & SWT 7
T Exception: Adding a window to a container AWT, Swing, JavaFX & SWT 14
G Kann mir jemand diese Exception erklaeren? AWT, Swing, JavaFX & SWT 8
T AWT Exception AWT, Swing, JavaFX & SWT 5
A Exception beim LineWrapping AWT, Swing, JavaFX & SWT 16
P Für mich unverständliche Exception AWT, Swing, JavaFX & SWT 3
N JList - Nullpointer Exception AWT, Swing, JavaFX & SWT 4
T Warum schmeißt das eine Exception? AWT, Swing, JavaFX & SWT 6
I EventDispatchThread Exception AWT, Swing, JavaFX & SWT 5
M Problem: "ArrayIndexOutOfBounds Exception" AWT, Swing, JavaFX & SWT 11
C Out of Bounds Exception, Array of JTextField AWT, Swing, JavaFX & SWT 6
B JTable Vector Exception bei eigenem CellEditor AWT, Swing, JavaFX & SWT 3
D Seltsame AWT-Exception AWT, Swing, JavaFX & SWT 2
M Button und Exception mit NetBeans AWT, Swing, JavaFX & SWT 3
P paint null pointer exception AWT, Swing, JavaFX & SWT 3
A Null pointer exception beim Neuzeichnen AWT, Swing, JavaFX & SWT 4
R DataVector bei TableModel - Class Cast Exception AWT, Swing, JavaFX & SWT 9
G Drag & Drop bzw. Data Transfer - Exception nach Drag AWT, Swing, JavaFX & SWT 1
K Exception mit "Unknown Source" AWT, Swing, JavaFX & SWT 5
Z jar-File mit SWT - Exception AWT, Swing, JavaFX & SWT 4
F Habe Problem mit dem Abfangen einer Exception AWT, Swing, JavaFX & SWT 10
V Null Pointer Exception bei JTextField setText AWT, Swing, JavaFX & SWT 25
T Programm funkt. nicht - Exception AWT, Swing, JavaFX & SWT 7
G Exception in JList oder JTextArea AWT, Swing, JavaFX & SWT 9
M java headless exception AWT, Swing, JavaFX & SWT 5
O Exception abfangen AWT, Swing, JavaFX & SWT 19
P thread nimmt veränderte boolean nicht AWT, Swing, JavaFX & SWT 7
N JFrame loescht alles, sobald der Thread zuende ist AWT, Swing, JavaFX & SWT 22
M Server/Client thread von GUI Trennen AWT, Swing, JavaFX & SWT 2
K JavaFx, Sound Aufnahme und Thread AWT, Swing, JavaFX & SWT 0
H Event Handling Thread - Abruf der get-Methode AWT, Swing, JavaFX & SWT 5
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
C Thread verwalten AWT, Swing, JavaFX & SWT 2
L Label im JavaFX Thread Updaten AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Alert Confirmation Dialog aus einem Service Thread AWT, Swing, JavaFX & SWT 8
ralfb1105 JavaFX MVC: Thread in Model Class mit Ausgabe in TextArea AWT, Swing, JavaFX & SWT 10
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
J Thread per Button starten AWT, Swing, JavaFX & SWT 10
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben