1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Seltsames Problem mit JEditorPane

  • java-girl
  • 15. Juni 2006 um 07:27
  • Unerledigt
  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. Juni 2006 um 07:27
    • #1

    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:

    Code
    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???

    There's no better place than 127.0.0.1!

  • Paulchen
    1
    Paulchen
    Gast
    • 15. Juni 2006 um 10:50
    • #2

    Ich nehm mal an, das liegt daran, dass der Inhalt von tp erst nach seiner Initialisierung und dem Hinzufügen zu jp verändert wird:

    PHP
    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();
    }
    Alles anzeigen


    Probier als Workaround mal Folgendes:

    PHP
    File file = new File("test.html");
    JEditorPane tp;
    try {
        tp=new JEditorPane(file.toURL());
    }
    catch (Exception e) {
        return;
    }
    JScrollPane js = new JScrollPane();
    js.getViewport().add(tp);
    tp.setEditable(false);
    Alles anzeigen
  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. Juni 2006 um 21:36
    • #3

    Erstmals danke, aber jetzt geht es selbst beim ersten Mal nicht mehr :frowning_face:

    There's no better place than 127.0.0.1!

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. Juni 2006 um 21:36
    • #4

    Erstmals danke, aber jetzt geht es selbst beim ersten Mal nicht mehr :frowning_face:

    Bitte löschen war ein Versehen

    There's no better place than 127.0.0.1!

  • Paulchen
    1
    Paulchen
    Gast
    • 15. Juni 2006 um 23:01
    • #5

    Wie wärs mit der Quick'n'Dirty-Variante:

    PHP
    dialog.setResizable(false);
    dialog.setSize(new Dimension(500,500)); /* oder wie gross auch immer */
    dialog.pack();
    dialog.setVisible(true);
  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 16. Juni 2006 um 08:56
    • #6

    Hab da selbst auch schon daran gedacht und werde es wahrscheinlich so machen, aber es beschäftigt mich immer noch...
    Eigentlich müsste es doch so auch gehen!

    There's no better place than 127.0.0.1!

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung