Use rise and font with StyleRange : StyledText Style « SWT « Java Tutorial






Use rise and font with StyleRange
/*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
//package org.eclipse.swt.snippets;
/*
 * SWT StyledText snippet: use rise and font with StyleRange. 
 *
 * For a list of all SWT example snippets see
 * http://www.eclipse.org/swt/snippets/
 * 
 * @since 3.2
 */
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class StyledTextStyleRangeFont {

  static String text = "You can set any font you want in a range. You can also set a baseline rise and all other old features"
      + " like background and foreground, and mix them any way you want. Totally awesome.";

  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    StyledText styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER);
    styledText.setText(text);
    FontData data = styledText.getFont().getFontData()[0];
    Font font1 = new Font(display, data.getName(), data.getHeight() * 2, data.getStyle());
    Font font2 = new Font(display, data.getName(), data.getHeight() * 4 / 5, data.getStyle());
    StyleRange[] styles = new StyleRange[8];
    styles[0] = new StyleRange();
    styles[0].font = font1;
    styles[1] = new StyleRange();
    styles[1].rise = data.getHeight() / 3;
    styles[2] = new StyleRange();
    styles[2].background = display.getSystemColor(SWT.COLOR_GREEN);
    styles[3] = new StyleRange();
    styles[3].foreground = display.getSystemColor(SWT.COLOR_MAGENTA);
    styles[4] = new StyleRange();
    styles[4].font = font2;
    styles[4].foreground = display.getSystemColor(SWT.COLOR_BLUE);
    ;
    styles[4].underline = true;
    styles[5] = new StyleRange();
    styles[5].rise = -data.getHeight() / 3;
    styles[5].strikeout = true;
    styles[5].underline = true;
    styles[6] = new StyleRange();
    styles[6].font = font1;
    styles[6].foreground = display.getSystemColor(SWT.COLOR_YELLOW);
    styles[6].background = display.getSystemColor(SWT.COLOR_BLUE);
    styles[7] = new StyleRange();
    styles[7].rise = data.getHeight() / 3;
    styles[7].underline = true;
    styles[7].fontStyle = SWT.BOLD;
    styles[7].foreground = display.getSystemColor(SWT.COLOR_RED);
    styles[7].background = display.getSystemColor(SWT.COLOR_BLACK);

    int[] ranges = new int[] { 16, 4, 61, 13, 107, 10, 122, 10, 134, 3, 143, 6, 160, 7, 168, 7 };
    styledText.setStyleRanges(ranges, styles);

    shell.setSize(300, 300);
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    font1.dispose();
    font2.dispose();
    display.dispose();
  }
}








17.43.StyledText Style
17.43.1.Using StyleRanges
17.43.2.StyleRange Constructors
17.43.3.Compare StyleRange
17.43.4.Set a single StyleRange into a StyledTextSet a single StyleRange into a StyledText
17.43.5.Set two Different stylesSet two Different styles
17.43.6.Store StyleRanges into an array, and called setStyleRanges()Store StyleRanges into an array, and called setStyleRanges()
17.43.7.replaceStyleRanges(): specifies which portion of the StyledText to repaintreplaceStyleRanges(): specifies which portion of the StyledText to repaint
17.43.8.Dynamic syntax coloring
17.43.9.Make Text BoldMake Text Bold
17.43.10.Make text appear underlinedMake text appear underlined
17.43.11.Use rise and font with StyleRangeUse rise and font with StyleRange
17.43.12.Change the backgroundChange the background
17.43.13.Change the Foreground colorChange the Foreground color
17.43.14.Make text appear strikeoutMake text appear strikeout
17.43.15.StyledText: set line backgroundStyledText: set line background
17.43.16.Using LineBackgroundListenerUsing LineBackgroundListener