SWT Tips and Samples 基礎編 > TextViewer

 

TextViewer

TextViewerはMVCアーキテクチャーで実装したJFaceのテキストクラスです。MVCのビューにあたるのが、TextViewer、モデルにあたるのがIDcoumentインターフェースを実装したクラスになります。IDocumentの実装として、Documentクラスが用意されているので、これを使うと便利です。またこれらのクラスを使うには、EclipseSDKのjfacetext.jar, text.jar, jface.jarをクラスパスに追加する必要があります。

使い方は以下のようになります。TextViewerを生成しただけでは、モデルとなるドキュメントは自動的に生成されないので、ドキュメントは別に生成してビューにセットする必要があります。またテキストウィジェットの概観を変えたいときは、getTextWidgetメソッドでStyledTextを取り出し、前景色や背景色などの変更を加えればよいでしょう。

TextViewer textViewer = new TextViewer(shell, SWT.BORDER | SWT.MULTI);
Document doc = new Document("ドキュメント");
textViewer.setDocument(doc);
...
StyledText st = textViewer.getTextWidget();
...

サンプルプログラム

このサンプルでは1つのドキュメントに対して、概観の異なる二つのビューを持っています。したがって上部のテキストに文字を入力すると、下部のテキストにも文字が自動的に入力されます。

ソースコード (TextViewerTest.java)

import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.TextViewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class TextViewerTest extends ApplicationWindow {

        public TextViewerTest() {
                super(null);
        }
        public static void main(String[] args) {
                ApplicationWindow w = new TextViewerTest();
                w.setBlockOnOpen(true);
                w.open();
                Display.getCurrent().dispose();
        }

        protected Control createContents(Composite parent) {
                getShell().setText("TextViewerTest");
                getShell().setSize(200,200);
                Display display = getShell().getDisplay();
                Composite container = new Composite(parent, SWT.NONE);
                container.setLayout(new FillLayout(SWT.VERTICAL));
                
                Document doc = new Document("ドキュメント");
                
                TextViewer text1 = new TextViewer(container, SWT.MULTI | 
                                                             SWT.BORDER);
                text1.setDocument(doc);
                
                TextViewer text2 = new TextViewer(container, SWT.MULTI);
                text2.setDocument(doc);
                text2.getTextWidget().setForeground(
                     display.getSystemColor(SWT.COLOR_WHITE));
                text2.getTextWidget().setBackground(
                     display.getSystemColor(SWT.COLOR_BLACK));
                
                return container;
        }
}


最新更新日: 2004年7月25日
 
関連リンク
Eclipse API ドキュメント
TextViewer
Document
SWT基礎編 - StyledText

- PR -

プレゼンテーション作成ソフト無料お試し版配信中

【Sony】大手他社よりも安い!ビジネス向け光・100Mしかも固定IP付!今なら更に初期費用最大15,000円OFF!

オフィス用品・オフィス家具 価 格 交 渉 可! 
◎ 目指せ★業界最安値 ★ ◎ オフィネット・ドットコム株式会社

注文から納品まで驚きの早さ!!【ASKULカタログ】はこちらから・・・

マイクロソフト お得な見積! まとめての購入ならオトクな方法で。ライセンスだから管理も簡単。


Copyright(C) 2003,2004 Jasmin Project. All Right Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送