StyledText

darksmilie

Erfahrenes Mitglied
Hi

Ich habe probleme mit einem StyledText.

Ich habe dieses Textfield scrollbar gemacht. In dem StyledText befinden sich 3 verschiedene Fonts:
1. für die überschrift
2. für ein absatzüberschrift
3. normal für den Text

Wenn ich nun mit der Scrollleiste nach unten oder nach rechts gehe verändert sich der Sytle der nicht mehr sichtbaren Textteile. Scrollt man wieder zurück so sieht man auch diese veränderungen.

Weiß jemand wie ich mein Problem lösen könnte?
 
Ich poste mal ein paar code stellen

hier erstelle ich mir mein styledText:
Code:
final StyledText styledText = new StyledText(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    GridData gridData = new GridData(SWT.FILL,SWT.FILL,true,true);
    styledText.setLayoutData(gridData);
    styledText.setEditable(false);
    setStyledTextStringAndStyle(styledText,width);

hier setze ich den text und die styles:
Code:
private void setStyledTextStringAndStyle(StyledText styledText, int width) {
    String StyledTextString = ""; //$NON-NLS-1$
    List<StyleRange> styleList = new ArrayList<StyleRange>();
    if(ObjectList.size() > 0) {
      for(int i = 0; i < ObjectList.size(); i++) {
        Object object = ObjectList.get(i);
        if(i == 0) {
          String headline = createBreakedString(LABEL_TEXT_HEADLINE + object.getA() + "\n" + "\n",width - 110,false); //$NON-NLS-1$ //$NON-NLS-2$
          StyledTextString = headline;
          styleList.add(createStyle(0,headline,headLineFont));
          StyledTextString += "\n"; //$NON-NLS-1$
        }
        String aHeadline = String.valueOf(i + 1) + ".) " + createBreakedString(createString(object),width - 60,false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        StyledTextString += "\n" + aHeadline;
        int headlinepoint = StyledTextString.indexOf(String.valueOf(i+1) + ".)"); //$NON-NLS-1$
        styleList.add(createStyle(headlinepoint,aHeadline,bHeadLineFont));
        StyledTextString += "\n"; //$NON-NLS-1$
        if(object.getB() != null || object.getC() != null ||
            object.getD() != null || object.getE() != null) {
          StyledTextString += createEnabledDetailsString(object,width);
        }
        if(object.getF() != null) {
          StyledTextString += createDisabledDetailsString(object,width);
        }
      }
    }
    styledText.setText(StyledTextString);
    if(!styleList.isEmpty()) {
      for(StyleRange style : styleList) {
        styledText.setStyleRange(style);
      }
    }
  }

Also es liegt definitiv an den Fonts, denn wenn ich diese rausnehme ist alles wunderbar, aber mit verschiedenen Fonts müsste es ja theoretisch auch gehen.

Was mache ich nur falsch?

Vielleicht weiß es einer von euch?
 
Zurück