tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1024
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Freak2k Freak2k ist offline Mitglied Gold
    Registriert seit
    Apr 2005
    Beiträge
    129
    Hey,

    folgende zwei Fragen:

    Code :
    1
    2
    3
    4
    5
    6
    
    JFrame frame = new JFrame("TestFrame");
    JTextPane textPane = new JTextPane();
    JScrollPane scrollPane = new JScrollPane(textPane):
    frame.getContentPane().add(scrollPane);
    frame.pack();
    frame.setVisible(true);

    wie kann ich waehrend der Laufzeit die Groesse der textPane aendern?
    setSize() funktioniert ab und zu....dann wird jedoch nur die Horizontale Scrollbar angezeigt.

    setPrefferedSize() zeigt keine aenderungen...

    ich brauche jedoch eine Textpane, deren groesse ich beliebig einstellen kann. und die auch als Mindestgroesse eingehalten wird.
    setMinimumSize() zeigt auch keine wirkung

    zweite Frage:
    sollte die entsprechende TextPane auch die Moeglichkeit bieten, den Cursor frei zu positionieren.

    geht das mit Java eigenen?

    thx!
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.960
    Wenn du eine bestimmte Größe benutzten möchtest solltest du pack() nicht benutzen, da die Größe sonst automatisch berechnet wird.

    Innerhalb der TextPane kannst du mit setCarePosition die Position des Carets setzen (also dahin setzen wo die Eingabe beginnen soll).
     

  3. #3
    Freak2k Freak2k ist offline Mitglied Gold
    Registriert seit
    Apr 2005
    Beiträge
    129
    wenn ich pack nicht verwende, wird das fenster ganz klein angezeigt und ich kann die groesse des in der scrollpane liegenden textpanes trotzdem nicht aendern.

    Das Positionieren, des Cursor hast du vielleicht falsch verstanden.
    Angenommen ich habe ein leere textpane, dann moechte ich den Cursor trotzdem irgendwo in die mitte setzen koennen und ab da anfangen zu tippen.
     

  4. #4
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.960
    Ich habe es nicht falsch verstanden, du hast es unzureichend erklärt. Nen Cursor ist der Mauszeiger. Da wo man tippt ist das Caret.

    Und du musst natürlich die größe des Frames auch setzen wenn du pack nicht benutzt.

    Einfach mal rumprobieren, dann kann man das auch gut selbst raufinden. Die API ist immer ein netter Helfer...
     

  5. #5
    Freak2k Freak2k ist offline Mitglied Gold
    Registriert seit
    Apr 2005
    Beiträge
    129
    Zitat Zitat von zeja Beitrag anzeigen
    Ich habe es nicht falsch verstanden, du hast es unzureichend erklärt. Nen Cursor ist der Mauszeiger. Da wo man tippt ist das Caret.
    Ok, dann hab ichs einfach nur falsch ausgedrueckt....
    Nur leider funktioniert es nicht....ich moechte das Caret frei positionieren koennen...auch in einer leeren textpane...

    Zitat Zitat von zeja Beitrag anzeigen
    Und du musst natürlich die größe des Frames auch setzen wenn du pack nicht benutzt.

    Einfach mal rumprobieren, dann kann man das auch gut selbst raufinden. Die API ist immer ein netter Helfer...
    auch dann funktioniert es nicht....
    wenn ich die groesse einer JTextPane in einer JScrollPane aendern will, passiert nichts und bei einer JEditorPane wird nur die Horizontale Scrollbar angezeigt.

    Obwohl die ScrollPane nur ca. 200x200px gross ist und ich die groesse des TextPanes auf 1000x1000 setze... (per setPreferredSize(), setMinimumSize(). ... und revalidate());
     

  6. #6
    testalucida testalucida ist offline Mitglied Bronze
    Registriert seit
    Sep 2004
    Ort
    Nürnberg
    Beiträge
    29
    Hallo,
    da du einen JScrollPane benutzt, musst du dessen Größe ändern, dann ändert sich die Größe des JTextPane automatisch mit. Wenn Du preferredSize von JTextPane änderst, ohne den JScrollPane zu ändern, passiert genau das, was du beschrieben hast: es erscheint ein (oder zwei) Scrollbalken.
    pack() nicht zu verwenden halte ich für keine gute Idee, zumindest dann nicht, wenn du noch andere Controls auf deinem JFrame oder JDialog hast.

    Den Caret in einem leeren JTextPane in der Mitte zu positionieren ist nicht möglich. Das Caret kann nur eine Position annehmen, die einer Textstelle im Document entspricht; da die Länge des Document aber bei leerem JTextPane 0 ist, kann das Caret auch nur oben links positioniert werden.
    Das ist übrigens in anderen Textverarbeitungseditoren (z.B. Word) nicht anders.
    Gruß
    testalucida
     

Ähnliche Themen

  1. JTextPane Umbruch
    Von JayDaKuku im Forum Java
    Antworten: 4
    Letzter Beitrag: 09.11.10, 17:36
  2. Tabsize bei JTextpane
    Von Schnacki im Forum Java
    Antworten: 1
    Letzter Beitrag: 29.05.07, 16:37
  3. JTextPane in JTable?
    Von peter_mueller im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 23.05.06, 10:40
  4. Problem mit jdk 1.5 und <JTextPane>
    Von bspainkf36 im Forum Java
    Antworten: 5
    Letzter Beitrag: 30.05.05, 14:05
  5. paint von JTextPane
    Von ZAntjeZ im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 3
    Letzter Beitrag: 05.04.05, 15:28