2012-05-22 5 views
0

У меня есть JTextArea, и у меня это заполняется выбранным .java-файлом, проблема в том, что файл отображается как обычный текст. Я хотел бы добавить довольно красивую печать, чтобы пользователь мог видеть файл, как будто файл был открыт в eclipse (ключевые слова различного цвета, комментарии будут серыми ... и т. Д.)Java: Как довольно печатать .java-файл

Я не был чтобы найти какие-либо хорошие примеры в Интернете, как это сделать. что было бы лучшим способом сделать это?

EDIT:

Я получил это, наконец, работать, я добавил файл JSyntaxPane банку с моим (jsyntaxpane-0.9.5-b29.jar классам, чтобы быть точным), а затем я добавил следующие две строки кода, чтобы получить его работу для моего JEditorPane.

jsyntaxpane.DefaultSyntaxKit.initKit(); 
JEditorPane.setContentType("text/java"); 

Это также может быть использован на следующих языках: JavaScript, свойства, Groovy, C, C++, XML, SQL, Ruby и Python ... просто, просто изменив text/java на text/LANGUAGE_YOU_WANT в коде выше

ответ

2

JTextArea может отображать только обычный текст (например, блокнот в Windows). Если вы хотите показать довольно печатный исходный код с цветами, вам нужно JEditorPane, что позволяет отображать HTML.

Теперь вы можете генерировать HTML вручную с выделенным синтаксисом исходным кодом Java или использовать некоторую библиотеку.

Смотрите также

+0

я изменил свое TextArea к JEditorPane, я добавил файл JAR для JSyntaxPane, я также добавил код, чтобы изменить SyntaxKit в JEditorPane поэтому запись вроде: jEdtTest.setEditorKit (новый SyntaxKit («java»)); но он говорит, что не может найти символ, мне нужно создать класс для SyntaxKit ... знаете ли вы, почему он это говорит? – newSpringer

+0

@newSpringer: Я ничего не знаю о библиотеке JSyntaxPane, извините - и это, вероятно, заслуживает второго вопроса. Можете ли вы сначала попробовать отобразить любой HTML-файл в 'JEditorPane', чтобы убедиться, что он работает так, как ожидалось? –

+0

ура, я получил это, чтобы работать, и он отлично работает ... я отредактировал свой ответ также, чтобы показать, как я получил его на работу, спасибо снова – newSpringer

0

JEdit-Syntax имеет класс JEditTextArea, который будет выделять синтаксис. Этот проект был выделен для упаковки некоторых подкомпонентов проекта JEdit.

Смежные вопросы