2003-08-30

نمايش رنگي كليدواژه‌ها و عناصر متني برنامه‌نويسي در سازه‌هاي متني سوينگ


فرض كنيد برنامه‌اي به زبان جاوا نوشته‌ايد كه متن پرونده‌هاي جاوا (يا زبان‌هاي برنامه‌نويسي ديگر, مثلاً HTML) را نشان مي‌دهد. مي‌دانيد چگونه مي‌توانيم به آساني قابليت نمايش رنگي كليدواژه‌ها و عناصر متني برنامه‌نويسي در سازه‌هاي متني سوينگ را به آن اضافه كنيم؟

بهترين روش آن است كه از بسته‌ي org.gjt.sp.jedit.syntax نوشته‌ي Slava Pestov استفاده كنيد كه جزئي از برنامه‌ي jEdit (به نشاني http://jedit.org) است, و تحت ليسانس GPL عرضه مي‌شود. (متن اين برنامه را مي‌توانيد از نشاني http://prdownloads.sourceforge.net/jedit/jedit41source.tar.gz?download بگيريد. البته اين بسته در برنامه‌ي BlueJ نيز مورد استفاده قرار گرفته و نشاني متن آن ftp://ftp.cc.monash.edu.au/pub/bluej/bluej-editor-src-114.jar است.)

در صورتي كه بسته‌ي مذكور را در اختيار داشته باشيم, مي‌توانيم مانند مثال زير از آن استفاده كنيم:

/*
 * In the name of God
 * TestSyntax.java
 * � Ghasem Kiani
 * 29/08/2003 10:07:10 PM
 * ghasemkiani@yahoo.com
 */

package com.ghasemkiani.app.test.syntax;

import javax.swing.*;
import org.gjt.sp.jedit.syntax.SyntaxDocument;

public class TestSyntax extends JFrame
{
	protected JEditorPane editor;
	public TestSyntax()
	{
		super("Syntax Colorizing Test");
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		editor = new JEditorPane();
		editor.setEditorKit(new org.gjt.sp.jedit.syntax.SyntaxEditorKit());
		SyntaxDocument doc = (SyntaxDocument)editor.getDocument();
		doc.setTokenMarker(new org.gjt.sp.jedit.syntax.JavaTokenMarker());
		getContentPane().add(new JScrollPane(editor));
		setSize(480, 320);
		setVisible(true);
	}
	public static void main(java.lang.String[] args)
	{
		new TestSyntax();
	}
}

No comments: