Sample Styled Text : StyledText « SWT JFace Eclipse « Java






Sample Styled Text

Sample Styled Text

/******************************************************************************
 * All Right Reserved. 
 * Copyright (c) 1998, 2004 Jackwind Li Guojie
 * 
 * Created on Feb 19, 2004 8:49:16 PM by JACK
 * $Id$
 * 
 *****************************************************************************/

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.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class SampleStyledText {
  Display display = new Display();
  Shell shell = new Shell(display);
  
  StyledText styledText;

  public SampleStyledText() {
    init();
    
    shell.setLayout(new GridLayout());
    
    styledText = new StyledText(shell, SWT.MULTI | SWT.WRAP | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    
    styledText.setLayoutData(new GridData(GridData.FILL_BOTH));
    
    Font font = new Font(shell.getDisplay(), "Courier New", 12, SWT.NORMAL);
    styledText.setFont(font);
    
    styledText.setText("123456789\r\nABCDEFGHI");
    
    StyleRange styleRange1 = new StyleRange();
    styleRange1.start = 2;
    styleRange1.length = 16;
    styleRange1.foreground = shell.getDisplay().getSystemColor(SWT.COLOR_BLUE);
    styleRange1.background = shell.getDisplay().getSystemColor(SWT.COLOR_YELLOW);
    styleRange1.fontStyle = SWT.BOLD;
    
    StyleRange styleRange2 = new StyleRange();
    styleRange2.start = 14;
    styleRange2.length = 3;
    styleRange2.fontStyle = SWT.NORMAL;
    styleRange2.foreground = shell.getDisplay().getSystemColor(SWT.COLOR_YELLOW);
    styleRange2.background = shell.getDisplay().getSystemColor(SWT.COLOR_BLUE);
    
//    styledText.setStyleRange(styleRange1);
//    styledText.setStyleRange(styleRange2);
    
    //styledText.setStyleRanges(new StyleRange[]{styleRange1, styleRange2});
    //styledText.setStyleRanges(new StyleRange[]{styleRange2, styleRange1});
    
    //styledText.setLineBackground(1, 1, shell.getDisplay().getSystemColor(SWT.COLOR_GRAY));
    
//    styledText.setSelection(4);
//    System.out.println(printStyleRanges(styledText.getStyleRanges()) );
//    styledText.insert("000");
    
    
    System.out.println(printStyleRanges(styledText.getStyleRanges()) );
    
//    styledText.setStyleRanges(new StyleRange[]{styleRange1});
//    System.out.println(printStyleRanges(styledText.getStyleRanges()) );
    
    //shell.pack();
    shell.setSize(300, 120);
    shell.open();
    //textUser.forceFocus();

    // Set up the event loop.
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        // If no more entries in event queue
        display.sleep();
      }
    }

    display.dispose();
  }
  
  private String printStyleRanges(StyleRange[] styleRanges) {
    
    if(styleRanges == null)
      return "null";
    else if(styleRanges.length == 0)
      return "[]";
    
    StringBuffer sb = new StringBuffer();
    for(int i=0; i<styleRanges.length; i++) {
      sb.append(styleRanges[i] + "\n");
    }
    
    return sb.toString();
  }

  private void init() {

  }

  public static void main(String[] args) {
    new SampleStyledText();
  }
}


           
       








Related examples in the same category

1.Styled Text with highlighted Odd LineStyled Text with highlighted Odd Line
2.Search Style TextSearch Style Text
3.SetLine Background SetLine Background
4.Demonstrates StyleRangesDemonstrates StyleRanges
5.Implements syntax coloring using the StyledText APIImplements syntax coloring using the StyledText API
6.SWT StyledText
7.Text with underline and strike throughText with underline and strike through
8.Setting the font style, foreground and background colors of StyledTextSetting the font style, foreground and background colors of StyledText