Schriftgrößen JTextPane zum Teil gleich

lara23

Grünschnabel
Hallo,

ich habe ein JTextPane:

Code:
public static JTextPane maintxt=new JTextPane();

und eine JComboBox:
Code:
vars.Gvar.size=new JComboBox();
    for (int i = 8; i < 30; i+= 2)
      vars.Gvar.size.addItem(i);

mit folgendem ItemListener:
Code:
ItemListener IL=new ItemListener()
    {
      public void itemStateChanged(ItemEvent evt)
      {
        if (evt.getStateChange() == ItemEvent.SELECTED) 
        {
          MutableAttributeSet attributeSet = vars.Gvar.maintxt.getInputAttributes();  
              StyledDocument styledDoc =  vars.Gvar.maintxt.getStyledDocument();
              if (evt.getSource() == vars.Gvar.fonts)
              {         
                StyleConstants.setFontFamily(attributeSet,vars.Gvar.fonts.getSelectedItem().toString());
                //family speichern
                Properties Pfont=null;
                try
                {
                  Pfont=classes.MyProperties.laden("font");
                }
                catch(NullPointerException args0)
                {
                  Pfont=new Properties();
                };
            Pfont.setProperty("family", vars.Gvar.fonts.getSelectedItem().toString());
            classes.MyProperties.speichern(Pfont,"font");
              }
              if (evt.getSource() == vars.Gvar.size)
              {
                StyleConstants.setFontSize(attributeSet,Integer.parseInt(vars.Gvar.size.getSelectedItem().toString()));
                //size speichern
                Properties Pfont=null;
                try
                {
                  Pfont=classes.MyProperties.laden("font");
                }
                catch(NullPointerException args0)
                {
                  Pfont=new Properties();
                };
            Pfont.setProperty("size", vars.Gvar.size.getSelectedItem().toString());
            classes.MyProperties.speichern(Pfont,"font");
              }
              styledDoc.setCharacterAttributes(vars.Gvar.maintxt.getSelectionStart(), vars.Gvar.maintxt.getSelectionEnd()-vars.Gvar.maintxt.getSelectionStart(), attributeSet, false);
              vars.Gvar.maintxt.select(vars.Gvar.maintxt.getSelectionStart(), vars.Gvar.maintxt.getSelectionEnd());
            }       
      } 
    };

Mein Problem ist nun: wenn ich eine Textgröße in der JComboBox auswähle, dann haben die Einstellungen (16 und 18), (20, 22 und 24) und (26 und 28) jeweils die gleiche Größe.

Woran liegt das denn?
Vielen Dank schonmal im Voraus!!
 
Wie muss ich die Anzeige aktualisieren?

Ich habe die repaint() des JTextPane mit in den ItemListener geschrieben, aber das hat nix gebracht.

Und wenn ich von Größe 16 auf Größe 20 wechsel, dann erfolgt ja sofort die neue, richtige Anzeige.
 
Hmm welche Schriftart verwendest du denn?

Übrigens ist Java kein C# und daher schreibt man Variablennamen klein.
 
Die Schriftart wird über eine andere ComboBox gesetzt,

Code:
GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
String envfonts[] = gEnv.getAvailableFontFamilyNames();
Vector<String> vector = new Vector<String>();
for (int i = 1; i < envfonts.length; i++) 
{
	vector.addElement(envfonts[i]);
}
vars.Gvar.fonts = new JComboBox(vector);

die den gleichen ItemListener hat.

Habe zwar nicht alle Schriften getestet, aber bislang noch keine gefunden, in der es funktioniert.
Bei den Schriften tritt anscheinend das gleiche Problem auf - einige ändern sich, andere nicht.
 
Zuletzt bearbeitet:
Zurück