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.
Hoffe hier kann mir evtl. jemand helfen =) Danke
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