StyledText

Status
Nicht offen für weitere Antworten.

darksmilie

Bekanntes 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?
 

Ariol

Top Contributor
Kannst du mal den Code posten in dem du das Textfeld initialisierst?

Wo die Styles eingestellt und wo der Text gesetzt werden.
 

darksmilie

Bekanntes Mitglied
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);
      }
    }
  }
 

Ariol

Top Contributor
Ich kenn mich eigentlich überhaupt nicht mit SWT aus, aber ich vermute Mal, dass es hieran liegt: "styledText.setStyleRange(style); "

So wie ich das sehe überschreibst du damit den Style der kompletten Komponente (?).

Ist nur eine Idee, aber vllt bringts dich weiter.
 

darksmilie

Bekanntes Mitglied
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?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben