JEditorPane/Thread.komischer Fehler

Status
Nicht offen für weitere Antworten.
S

stofftier

Gast
Hallo allerseits,

ich hoffe ihr könnt mir helfen.
ich habe ein tool welches auch eine help-option bietet wo in einem JDialog ein text mit bildern angezeigt werden soll. ich habe den Text als html vorliegen welche ich in eine JEditorPane packe. hier mal der entsprechende code schnipsel (wird in meiner HelpDialog-klasse im konstruktor ausgeführt):

Code:
URL fileURL = HelpDialog.class.getClassLoader().getResource(".."+Sep+"resources"+Sep+"help.html");
try{
    aHelpTextPane = new JEditorPane(fileURL);
}catch(IOException e){
  System.err.println("HelpText-File was not found");
}


das funktioniert auch wunderbar nur in 5-10% der fälle wenn ich mein programm starte bekomme ich nen fehler und ich weiß nciht wieso. hier der stack:

Exception in thread "Thread-1" java.lang.ArrayIndexOutOfBoundsException: 2
at javax.swing.text.CompositeView.getView(CompositeView.java:143)
at javax.swing.text.View.forwardUpdate(View.java:1189)
at javax.swing.text.BoxView.forwardUpdate(BoxView.java:222)
at javax.swing.text.View.insertUpdate(View.java:716)
at javax.swing.plaf.basic.BasicTextUI$RootView.insertUpdate(BasicTextUI.java:1506)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.insertUpdate(BasicTextUI.java:1749)
at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:184)
at javax.swing.text.DefaultStyledDocument.insert(DefaultStyledDocument.java:201)
at javax.swing.text.html.HTMLDocument.insert(HTMLDocument.java:232)
at javax.swing.text.html.HTMLDocument$HTMLReader.flushBuffer(HTMLDocument.java:3291)
at javax.swing.text.html.HTMLDocument$HTMLReader.flush(HTMLDocument.java:2099)
at javax.swing.text.html.HTMLEditorKit.read(HTMLEditorKit.java:231)
at javax.swing.JEditorPane.read(JEditorPane.java:519)
at javax.swing.JEditorPane$PageLoader.run(JEditorPane.java:566)

da hier nur swing klassen aufgeführt werden und nichts von meinen eigenen weiß ich nciht wirklich woran es liegt. ich mein mir ist schon klar das es mit dem laden der html in die jeditorpane zusammen hängt was wohl mit nem thread realisiert wird. aber weswegen der fehler und wieso so willkürlich? ich mein selbst wenn der fehler auftritt kann ich die eigentlichen funktionen meines programms ausführen nur ebend der helptext ist nicht da.


hoffe ihr wiß da weiter.
stoff[/code]
 

Kaffeebohne

Bekanntes Mitglied
java.lang.ArrayIndexOutOfBoundsException deutet eingentlich eher darauf hin das du auf ein nicht existentes Array Element zugreifst.
 
S

stofftier

Gast
das ist mir wohl bewußt das mit dem array, nur wenn du dir den stack ansiehst, dann sieht man das es sich ausschließlich um swing klassen handelt, keine der klassen ist von mir. normalerweise wird immer mindestens eine eigene klasse angegeben, die den fahler verursacht. aber der fehler ist willkürlich und es muß ja irgendwas mit nem thread zu tun haben, ich selber arbeite in meinem tool aber nicht mit threads....deswegen verstehe ich das ganze nicht...

gruß,
stoff
 

The_S

Top Contributor
Das kann daher kommen weil Swing nicht Thread sicher ist. Für ein Workaround reichen die Informationen deinerseits nicht.
 
S

stofftier

Gast
welche infos werden denn noch benötigt?

ich will lediglich ne html seite in einen JDialog reinladen...oder sagen wir so: einen hilfetext anzeigen der bilder (und links) enthält. und das ganze möglichst ohne das er mir ab und zu mal abschmiert.

ich steh da echt aufm schlauch...diese JEditorPane wird doch ne existenzberechtigung haben oder lebt man immer mit der gefahr das die nen fehler zurückgibt?

stoff
 

The_S

Top Contributor
Nö, aber JEditorPane ist Swing und Swing ist nicht Threadsicher. Muss es unbedingt in einem extra-Thread laufen? Falls ja versuch es mal mit SwingUtilities.invokeLater (hab ja kA was du machst).
 
S

stofftier

Gast
ich habe doch gar keine threads in meinem programm. zumindest keine eigenen...das ist alles was ich tue:

Code:
public class HelpDialog extends JDialog implements HyperlinkListener{
	
  private static final String Sep = System.getProperty("file.separator");
  private JEditorPane aHelpTextPane;

  public HelpDialog(Frame parent){
     super(parent,"Help");
     setLocation(parent.getX()+(parent.getWidth()/2)-WIDTH/2,
			parent.getY()+(parent.getHeight()/2)-HEIGHT/2);
     getContentPane().setLayout(new BorderLayout());
		
     URL fileURL = HelpDialog.class.getClassLoader().getResource("help.html");
     aHelpTextPane = new JEditorPane();
     try{
        aHelpTextPane.setPage(fileURL);
    }catch(IOException e){
          System.err.println("HelpText-File was not found");
    }
		
    aHelpTextPane.addHyperlinkListener(this);
    aHelpTextPane.setEditable(false);
    getContentPane().add(new JScrollPane(aHelpTextPane), BorderLayout.CENTER);
}

  public void hyperlinkUpdate(HyperlinkEvent e){
    if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
        JEditorPane pane = (JEditorPane)e.getSource();
        try{
            pane.setPage(e.getURL());
        }catch(Exception ee){
           System.err.println("Error with Linking");
        }
    }
  }
}

der thread der das ganze verursacht wird innerhalb der swingklassen erstellt/bearbeitet. da hab ich doch gar keinen einfluß drauf...

stoff
 

The_S

Top Contributor
Achso, sag das doch gleich ... dein Topic lässt vermuten dass du einen extra Thread verwendest :autsch: .

So spontan fällt mir nichts auf an deinem Code, du könntest aber mal ein jeditorPane.getPage() versuchen. Evtl. hilft das :bahnhof:
 
G

Guest

Gast
Hallo,

danke. also ich hab das bereits in allen möglichen variationen versucht...also auch mit setPage() und so...immer das selbe ergebnis. in 5-10% der fälle schmiert ein swing-interner thread ab...

stoff
 

The_S

Top Contributor
Kann es sein, dass dein Fehler wo anders im Programm liegt? Weil ich hab das Ding ca. 50 mal ausgeführt und wieder beendet und kein einziges mal irgendeinen Fehler bekommen ...
 
S

stofftier

Gast
hallo ich wüßte nicht wo...ich mache nichts weiter damit und das problem kommt nur beim laden des programms...

im kontruktor meiner gui leg ich den helpdialog als letzes an und das wars...danach passiert nie wieder was damit. und der fehler kommt definitif daher, wie man ja an den fehlermeldungen sieht. die klasse JEditorPane wird ja nur einmal beim anlegen aufgerufen.
ich versteh zwar nicht wieso die klasse intern mit threads arbeitet aber es ist scheinbar so...und der fehler tritt ja bei der run-funktion dieses swing-threads auf.

gruß
stoff
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
D Erste Schritte HTML aus JEditorPane drucken Java Basics - Anfänger-Themen 5
C Html in einem JEditorPane anzeigen Java Basics - Anfänger-Themen 2
Nikut Eclipse - Speichern eines JEditorPane als .txt Java Basics - Anfänger-Themen 10
H JEditorPane: ermitteln, ob Zeichen unterstrichen Java Basics - Anfänger-Themen 4
B JEditorPane und append() Java Basics - Anfänger-Themen 3
A JEditorPane + html -> java.io.IOException: invalid url Java Basics - Anfänger-Themen 4
H JEditorPane: Textformate (RTF) zuweisen Java Basics - Anfänger-Themen 4
D JEditorPane aktuelle Zeile auslesen Java Basics - Anfänger-Themen 4
M Zeile n von jEditorPane ausgeben Java Basics - Anfänger-Themen 5
L Inhalt von JEditorPane löschen Java Basics - Anfänger-Themen 4
D JEditorPane html problem Java Basics - Anfänger-Themen 2
M größe JEditorPane Java Basics - Anfänger-Themen 5
W ProcessBuilder Problem -->gelöst - - Jetzt JEditorPane Problem Java Basics - Anfänger-Themen 6
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
V info popup fürein JEditorPane Java Basics - Anfänger-Themen 2
G In java Text markieren( auf JEditorPane unterstreichen) Java Basics - Anfänger-Themen 10
Horst79 Scrollbar in einem jEditorPane Java Basics - Anfänger-Themen 2
hdi HTML code geht nicht bei JEditorPane Java Basics - Anfänger-Themen 5
D jeditorpane checkbox abfragen? Java Basics - Anfänger-Themen 7
G JEditorPane - HTML Datei übergeben? Java Basics - Anfänger-Themen 3
B Link in JEditorPane eingeben? Java Basics - Anfänger-Themen 3
G JEditorPane Java Basics - Anfänger-Themen 4
N jpg vom Inhalt einer JeditorPane erstellen. Java Basics - Anfänger-Themen 10
G JEditorPane HTML-trim Java Basics - Anfänger-Themen 2
2 Alles Selektieren in JEditorPane Java Basics - Anfänger-Themen 5
zilti JEditorPane; Applet aus Unterverzeichnis starten Java Basics - Anfänger-Themen 7
zilti JEditorPane Java Basics - Anfänger-Themen 2
L JEditorpane Mausklick simulieren Java Basics - Anfänger-Themen 6
E Append bei JEditorPane Java Basics - Anfänger-Themen 2
G JEditorPane setBackground() Java Basics - Anfänger-Themen 4
T JEditorPane und Stylesheet.sieht komisch aus. Java Basics - Anfänger-Themen 6
G HTML-JeditorPane und Formulare Java Basics - Anfänger-Themen 2
G JEditorPane - Hilfe - Seite Java Basics - Anfänger-Themen 2
G jEditorPane: inhalt ohne zeilenumbruch darstellen. wie? Java Basics - Anfänger-Themen 3
G Text an ein JEditorPane hängen Java Basics - Anfänger-Themen 19
Leyla Thread isInterrupt Java Basics - Anfänger-Themen 18
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
A Thread XML-Dateien zusammenfügen Java Basics - Anfänger-Themen 11
F influxdb Upload in eigenem Thread Java Basics - Anfänger-Themen 2
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
A Thread - Synchronized Java Basics - Anfänger-Themen 10
A Thread Producer - Consumer Java Basics - Anfänger-Themen 1
A Thread-Semhapore Java Basics - Anfänger-Themen 0
A Thread Exchanger Java Basics - Anfänger-Themen 22
A Thread-Cyclicbarrier Java Basics - Anfänger-Themen 4
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Thread-Verklemmung Java Basics - Anfänger-Themen 10
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
A Thread find number Java Basics - Anfänger-Themen 8
F Thread.sleep() Java Basics - Anfänger-Themen 5
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
A Thread Java Basics - Anfänger-Themen 3
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
A Thread Java Basics - Anfänger-Themen 8
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
M Thread-Zustände Java Basics - Anfänger-Themen 6
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
B Endlosschleife Thread sauber beenden Java Basics - Anfänger-Themen 19
D Java Thread wartet nur ein mal Java Basics - Anfänger-Themen 1
D Java Thread wartet nur ein mal Java Basics - Anfänger-Themen 0
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
C Thread und TimerTask, Verstädnisproblem Java Basics - Anfänger-Themen 10
amgadalghabra Sorting Thread Launcher Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
A Thread Java Basics - Anfänger-Themen 4
A Thread Java Basics - Anfänger-Themen 1
A Thread Java Basics - Anfänger-Themen 0
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
B Thread / Prozess stoppen? Java Basics - Anfänger-Themen 22
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
B Threads Thread sleep() Method einfache Frage Java Basics - Anfänger-Themen 8
W Thread Aufgabe - Vorgehensweise Java Basics - Anfänger-Themen 8
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 0
J Threads PrograssBar update während thread Java Basics - Anfänger-Themen 13
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
Spencer Reid JavaFX Memory Thread.sleep Java Basics - Anfänger-Themen 1
S Thread.sleep mit JProgressBar Java Basics - Anfänger-Themen 1
ralfb1105 Frage zu Thread Synchronisation mit wait() und notify() Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
J Thread Handling Java Basics - Anfänger-Themen 9
A Problem mit Thread.sleep Java Basics - Anfänger-Themen 4
C Thread in Methode + raus aus der Schleife Java Basics - Anfänger-Themen 10
E Threads Thread in While-Schleife nur einmal starten Java Basics - Anfänger-Themen 2
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
B Thread Problem Java Basics - Anfänger-Themen 7
N KeyListener in Thread Java Basics - Anfänger-Themen 0
M Thread.sleep() Funktion Java Basics - Anfänger-Themen 1
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
D Ausgeben welcher Thread gerade Arbeitet Java Basics - Anfänger-Themen 8
N Threads Thread-Fehler Java Basics - Anfänger-Themen 2
F Thread um Uhrzeit ausführen Java Basics - Anfänger-Themen 5
F Get/Post als eigener Thread mit Rückgabe Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben