Hallo,
ich habe ein sehr seltsames Problem mit einer JEditorPane.
Ich habe versucht, von einem Menüpunkt aus einen JDialog zu öffnen, indem ein HTML-Dokument angezeigt wird und habe dazu folgenden Code verwendet:
private class ShowInstructions implements ActionListener{
public void actionPerformed(ActionEvent evt){
final JDialog dialog = new JDialog(frame, "Anleitung", true);
dialog.setLocation(xPosition, yPosition+50);
Container con = dialog.getContentPane();
JPanel panel = new JPanel(new BorderLayout());
JEditorPane tp = new JEditorPane();
JScrollPane js = new JScrollPane();
js.getViewport().add(tp);
tp.setEditable(false);
File file = new File("test.html");
try{
tp.setPage(file.toURL());
}
catch(Exception e){
e.printStackTrace();
}
JButton ok = new JButton("OK");
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
dialog.dispose();
}});
panel.add(js, BorderLayout.CENTER);
panel.add(ok, BorderLayout.SOUTH);
con.add(panel);
dialog.setResizable(false);
dialog.pack();
dialog.setVisible(true);
}
}
Alles anzeigen
Nun, wenn ich den Dialog das erste Mal öffne, wird das HTML Dokument korrekt angezeigt.
Nur seltsamerweise immer beim zweiten Mal öffnen wird nur mehr ein kleiner weißer Streifen angezeigt.
Mein erster Verdacht war dass das Dokument nicht korrekt geöffnet wurde, aber dann habe ich beim Dialog ein setResizable(true) zugelassen und ihn vergrößert und siehe da, das Dokument wurde richtig angezeigt.
Wenn man die ScrollPane herausgibt, ist es immer noch das selbe Problem.
Ebenfalls wenn man einen anderen LayoutManager verwendet.
Und eine JEditorPane durch die Subklasse JTextPane zu ersetzen bringt auch nichts.
Ich habe nun eine einstweilige Lösung, ich baue den Dialog einfach nicht immer neu auf sondern arbeite nur mit setVisible(). Allerdings ist das nicht unbedingt was ich will, außerdem macht das auch noch Probleme denn manchmal wird von Anfang an nur ein weißer Streifen angezeigt!
Hat jemand irgendeine Ahnung was das soll???