RSyntaxTextArea ist eine Java-Komponente, die einem eine erweiterte Textarea zur Verfügung stellt. Diese unterstützt das Syntaxhighlighting von rund 25 Sprachen. Ebenfalls in der Bibliothek enthalten ist eine Komponente zur Realisierung von CodeCompletion.
Ein einfaches Beispiel:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import org.fife.ui.rsyntaxtextarea.CodeTemplateManager;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
import org.fife.ui.rsyntaxtextarea.templates.CodeTemplate;
import org.fife.ui.rsyntaxtextarea.templates.StaticCodeTemplate;
import org.fife.ui.rtextarea.RTextScrollPane;
public class RSyntaxTextAreaTest extends JFrame{
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
RSyntaxTextAreaTest theRSyntaxTextAreaTest = new RSyntaxTextAreaTest();
theRSyntaxTextAreaTest.setVisible(true);
}
});
}
private RSyntaxTextAreaTest() {
JPanel theJPanel = new JPanel(new BorderLayout());
RSyntaxTextArea theTextArea = new RSyntaxTextArea();
theTextArea.setSyntaxEditingStyle( SyntaxConstants.SYNTAX_STYLE_JAVA);
RTextScrollPane theRTextScrollPane = new RTextScrollPane(theTextArea);
theJPanel.add(theRTextScrollPane);
RSyntaxTextArea.setTemplatesEnabled(true);
CodeTemplateManager theCodeTemplateManager = RSyntaxTextArea.getCodeTemplateManager();
CodeTemplate theCodeTemplate = new StaticCodeTemplate("sout", "System.out.println(", ");");
theCodeTemplateManager.addTemplate(theCodeTemplate);
setContentPane(theJPanel);
setTitle("Test mit RSyntaxTextArea");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
}
}
Und so kann dann das Ergenis aussehen:

Die Bibliothek steht aktuell in Version 1.4.0 zur Verfügung und wurde unter der LGPL veröffentlicht. Das Projekt RText zeigt das Zusammenspiel der einzelnen Komponenten in einem noch größerem Zusammenhang.



