# ZOOM Funktion in JTextPane



## Faebz (4. Jan 2007)

Hallo liebe Leutz,

ich suche eine Möglichkeit wie bei einem Word-dokument oder ähnlichem in einem JTextPane zoomen zu können. Dabei soll aber die reelle Schriftgröße nicht verändert werden, sondern die Graphics sollen praktisch nur skaliert dargestellt werden.

Einfaches Überschreiben der Paint-methode

```
public void paintComponent(Graphics g) {
                     Graphics2D g2d = (Graphics2D)g;
                     g2d.scale(myZoomFactor,myZoomFactor);
 
                     super.paintComponent(g2d);
                }
```

hilft zwar schonmal weiter, aber mit dem ists ja noch lang nicht getan. Die beschreibbare Breite und Höhe muss sich ja noch mitändern. Dann wird bei einem Klick auf das TextPane der Caret auf eine völlig andere Position gesetzt, und, und,und... Ihr wisst bestimmt noch ne ganze Menge mehr.

Ich hab ja eine Lösung im Netz gefunden. Nur wird in dieser Lösung nicht der Content-type auf text/html gesetzt, was für mich zwingend notwendig ist, da ich dadurch den formatierten Textinhalt in der Datenbank speichern kann und ihn später auch wieder mit setText(htmlTextAusDerDb) problemlos wieder einfügen kann.

Die Lösung aus dem Netz steht hier. Nur funktioniert halt nicht mit Contenttype text/html, sonst wär sie richtig cool.

www.developer.com/java/other/article.php/10936_3315511_2

Vielleicht fehlt ja nur ein kleinere Kniff, den ich leider nicht sehe, weile ich in diesem Gebiet nicht ganz so bewandert bin. Aber vielleicht weiß ihr mehr, und könnt mir helfen.... wäre ultracool....!!!


----------



## Craven (4. Jan 2007)

Servus!

In meiner Applikation (Knowledgebase) verwende ich ebenfalls ein JTextPane für Text und HTML!

Zoomen hab ich auch ausprobiert und unter der reinen Textdarstellung funktioniert das ohne Probleme.

Zoomen unter HTML ist aber nicht realistisch, du müßtest eine ganze Menge privater Methoden ändern, damit du zum Zug kommst. 

Nach ca 8 Wochen hab ich genervt aufgegeben! Für nähere Infos, schau mal unter

http://onesearch.sun.com/search/one...dftab=&chooseCat=javaall&col=developer-forums

Ich bin mittlerweile soweit, daß ich OpenOffice in meine Anwendung integrieren werde (Stichwort: OfficeBean). Dann hab ich endlich alle Funktionalitäten, die eine Software bieten sollte.

OpenOffice muß dafür übrigens nicht installiert werden!

Mein Tip:
Vergiß JTextPane, meine grauen Haare können ein Lied davon singen!


----------



## Faebz (4. Jan 2007)

das klingt ja erschreckend. Glaube kaum, dass ich auf das JTextPane verzichten kann, weil auch die Möglichkeit gegeben sein soll den Text um 90, 180, 270° zu drehen. Da hab ich ewig gesucht, bis ich eine Komponente gefunden hab, die das kann. Hab jetzt aber eine, die mit JTextpane zusammenarbeitet und ob die auch mit anderen zusammenarbeitet?? Sehr fragwürdig....?

Naja versuche vielleicht, das möglicherweise auf dem Html-Weg zu lösen. Weißt du vielleicht, ob man nicht irgendwie im Body-tag oder über das font-tag mittels prozentualer Angabe über  css die Schriftgröße allgemein zu verändern.

Wäre das ein Ansatz, oder bin ich da auch auf dem Holzweg?


----------



## Faebz (4. Jan 2007)

au shit, jetzt kommt noch ein Problem hinzu. Wenn ich den Content-type auf text/html setze, dann mittels FontSizeAction usw. die Schriftgröße verändere und anschließend mit myTextPane.getText() den Html-Source hole wird die Schriftgröße ja über das <Font> Tag mittels dem Attribut Size bestimmt, das ja nur die Werte von 1-7 unterstützt.

Das ist ja mal voll der Shit. Warum wird da nicht das style-Attribut verwendet und dann über css die Schriftgröße über font-size:15pt oder so angegeben.

So hat man ja praktisch nur die Möglichkeiten, die Schriftgrößen 8,10,12,14,18,24,36 zu verwenden. Das kanns doch nicht sein.

Kenn da niemand ne bessere Lösung. Das wär echt notwendig würde ich sagen. Wäre cool, wenn man den ne Lösung finden könnte.


----------



## Craven (12. Jan 2007)

Ich kann das nachfühlen! Ich hatte genau die gleichen Probleme! 

CSS wird ebenfalls nicht vollständig unterstützt! 

Stell dir darum früh genug die Frage, ob die investierte Zeit das Wert ist. Dazu kommen die Änderungen, die mit nahezu jeder Javaversion an diesem GUI-Object vollzogen werden. 

Bsp: Hab eine Statistikseite erstellt, die ab 1.5.0.8 nicht mehr korrekt dargestellt wird.


----------



## Georgß (11. Nov 2007)

Hallo , 

auch ich bäruchte  eine Zoom Funktion auf HTML formatierten Text und hab hier im Forum bei den entsprechenden Beiträgen gelesen, dass dies generell ein Problem darstellt. Hier im Sun Forum gibt es von einem Herrn Stanislav L

einen Ansatz

http://forum.java.sun.com/thread.jspa?forumID=57&threadID=628330


Ich hab dieses Beispielprogramm mit vershciednen einfachen HTML Seiten getestet. Zwar gibt es manchmal Darstellungsfehler, aber dafür dass es scheinbar nichts richtiges bis dato gibt, sieht das ganz gut aus. Wie bewertet ihr das ?

Viele Grüße
Georg


----------



## Georgß (15. Nov 2007)

Hm ich wei´ß nicht, die Darstellung sieht bei manchen Seiten grauenhaft aus, bei einfacheren scheint es ganz ok zu sein.
 ???:L


----------

