Announcement

Collapse
No announcement yet.

JEditorPane in einem Panel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JEditorPane in einem Panel

    Hi Leude,

    ich habe da mal ein Problem :P
    Ich habe in einem Programm etwas mit der paint( Graphics g ) Methode gezeichnet. Jetzt soll in der Mitte des Programms ein JEditorPane rein um dort eine HTML Seite anzeigen zulassen.

    Da habe ich mir überlegt, ich bastel ein Panel in die Mitte und lass die HTML Seite in dem Panel anzeigen.
    Nachdem ich nun etliche Tutorials durchgegangen bin, ist mir aufgefallen, das alle Beispiele wo ein JEditorPane verwende wird, eine main Methode beinhalten.

    Nun meine Frage:
    Kann man, und wenn ja WIE, ein JEditorPane in einem Panel anzeigen lassen ??

    Warte spannungsvoll auf Antwort ^^

    cYa ang greetz ScorPleX

  • #2
    Nun, du hast ein Panel panel.

    Du konstruierst ein JEditorPane, z.B.

    JEditorPane p = new JEditorPane();
    dann fügst du das JEditPane hinzu mit
    panel.add( p, null ) ( z.B. )

    Wenn du es nicht siehst, dann mach dir gedanken über das Layout des Panels panel. Du kannst z.B. das Layout auf null setzen ( panel.setLayout( null ) ) und dann die Position selbst bestimmen. ( p.setBounds( 20,20,100,100 ) ).
    Wenn du dann immer noch nichts siehst, liegt es daran das um das JEditPane kein Rahmen gemahlt wird. Klick mal in die Application rein, es ist trotzdem da.

    Gruß Holger

    Comment


    • #3
      Also alles in einer Datei oder muss ich weiterhin 2 haben ??

      Bisher habe ich das Panel mit

      panel = new Inhalt();

      panel.setBounds( 90, 75, 420, 215 );

      add( panel );

      eingefügt.

      Der Momentane Quelltext meiner Inhalt Datei:

      import java.awt.*;

      import java.awt.event.*;

      import java.net.*;

      import java.io.*;

      import javax.swing.*;

      public class Inhalt extends JFrame

      {

      static JFrame f;



      public static void main(String args[])

      {

      EditorPaneTest st = new
      EditorPaneTest();
      f = new JFrame("Inhalt");

      f.addWindowListener(new
      WindowAdapter()
      {

      public void
      windowClosing(WindowEvent e)
      {

      System.exit(0);

      }

      }

      );

      JEditorPane editorPane = new
      JEditorPane();
      editorPane.setEditable(false);

      URL url=null;

      String s = null;

      try

      {

      s = "file:"

      + System.getProperty
      ("user.dir")
      + System.getProperty
      ("file.separator")
      + "Inhalt.html";

      url = new URL(s);

      }

      catch (Exception e)

      {

      System.err.println("Konnte URL
      nicht erstellen: " + s);
      }

      try

      {

      editorPane.setPage(url);

      }

      catch (IOException e)

      {

      System.err.println("Versuch
      eine ungültige URL zu lesen: " + url);
      }

      f.setLocation(100, 100);

      f.getContentPane().add(editorPane);

      f.setSize(500,300);

      f.setVisible(true);

      }

      }

      Muss ich nun 2 Dateien beibehalten oder alles
      in eine ??
      &#10

      Comment


      • #4
        Hmm, was willst du denn erreichen?
        Es scheint ja zu funktionieren, ist aber etwas seltsam.
        Du benutzt die Klasse Inhalt eigentlich nur, um die main auszuführen. Das du sie von JFrame ableitest, könntest du dir eigentlich sparen.

        Die Frage "muss ich 2 Dateien haben" heißt eigentlich "vieviele Klassen sollte ich benutzen?"
        Ich würde dir vorschlagen: Eine Klasse( datei ) dür das Panel. Da machst du dann im Konstruktor etwa das, was du jetzt in main machst.
        Und dann erstellst du noch eine neue Klasse, z.B. Application, die eine main-Methode hat und die Panel-Klasse benutzt( mit new ).

        Es ist nicht schlimm, mehrere Klassen zu erstellen, im Gegenteil ist es odt sogar übersichtlicher.

        Gruß Holger

        Comment

        Working...
        X