JTextPane Schriftgröße in Pixel

devian_der_999

Mitglied
Hallo,

ich versuche jetzt schon seit Stunden in einem JTextPane (contentType==html) die schrift größe zu ändern.

Ich habs bisher aber nur damit geschaft:

Code:
JTextPane text = new JTextPane();

StyledDocument doc = textpane.getStyledDocument();
        
        Style style = textpane.addStyle("test", null);
        StyleConstants.setFontSize(style, 3);

Nur das Problem ist das die Größe in setFontSize() nicht in pixeln angegeben wird sondern (Vermutung) der standart Font.

Ich hab alles versucht was mir eingefallen ist aber habs nicht geschafft.:mad:

Hat jemand eine Idee oder weiß jemand ob das überhaupt möglich ist?:confused::confused::confused:
 
Ja. Das geht, aber dan hab ich ja das beschrieben Problem.

Ich kann die Größe nicht in Pixeln angeben sondern nur von 1-7.
Und genau das ist mein Problem.

Sorry wenn ichs oben ein bischen unverständlich erklärt hab:)
 
Java:
 JTextPane text = new JTextPane();
	 text.setContentType("text/html");
	 text.setText("<p style='font-size:12px;'>Bla</p>");
 
@Leroux

Ok. Das funktioniert schon mal halb. :)

Das problem ist, dass er das nicht in den Html-code reinschreibt, sondern das wohl ins stylesheet umwandelt. Ich will aber später wenn alle formatierungen fertig sind den gesamten Text(inc. Formatierung) in eine externe Datei schreiben. das Problem ist, das ich die formatierung nirgendwo her bekomme.
 
liefert dir:

Java:
String htmlCode = text.getText()

nicht den HTML-Code?
den könntest du dann in eine Datei schreiben (test.html).
Dann haste auch alle Formatierungen.
 
Ja das stimmt schon. Aber wenn Ich sagen wir mal dass machen möchte:



Hallo Welt !!?



Und Welt soll genau 46pixel groß sein. Dann müsste ich ja in etwa das tun:

Java:
text.setText("<p style='font-size:46px;'>Welt</p><color="#ff0000"> !!? </color>");

Er zeigt das auch schön an im Pane.
Nur das Problem ist wenn ich das mache und mir danach das HTML hole (text.getText();)
dann Bekomme ich nur:



HTML:
<html>
   <head>

   <head>
   <body>
      <p margin="0">
         Hallo Welt !!? 
      </p>
   </body>
</html>

Wo dann die Formatierungen (wie Größe und farbe) Fehlen.
Ich schätze mal er konvertiert das dann als StyleAtrribute, aber das soll er ja eigentlich net.:suspekt::suspekt::suspekt::suspekt::suspekt:

Bzw. jemand hat ne ide wie ich so alles abschpeichern kann(Text & Formatierung).
 
WAAAAAS?!
so ne sauerei....
wird da einfach was wegkonvertiert.....

naja...mich interessierts...ich guck ma....
 
also mit diesen Infos könntest du dein Dokument rekonstruieren:

Java:
HTMLDocument html = (HTMLDocument)jTextPane1.getDocument();
String styleSheet = html.getStyleSheet().toString();

so, nun jTextPane1.getText(); + das Stylesheet. fertig.
(zumindest könnte man mit diesen Informationen das Dokument wiederherstellen)
 
Hallo

versuchs mal hiermit: :)

Java:
JComboBox sizeBox = new JComboBox();
strSizeBox = new String[] {"6", "8", "10", "12", "14", "16", "18",
				"20", "22", "24", "30"};
		for(int i = 0; i < strSizeBox.length; i++) {
			sizeBox.addItem(strSizeBox[i]);
		}
		
		sizeBox.addItemListener( new ItemListener() {
	          public void itemStateChanged( ItemEvent e ) {
	            sizeBox = (JComboBox)e.getSource();
	            String strSize = sizeBox.getSelectedItem().toString();
	            int intSize = Integer.parseInt(strSize);
	            new HTMLEditorKit.FontSizeAction("Size", intSize).actionPerformed(null);
	          }
	    });
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück