Groovy выпуск класса путь
Я запустил следующий код на этой странице RsyntaxTextArea, используя Java, и я запускаю программу именно так, как было упомянуто на этом сайте. И я получаю вывод, как и предполагалось. Но я попытался изменить этот код Java в код Groovy, что-то вроде:
import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.*
swing = new SwingBuilder()
frame = swing.frame(title : "test", defaultCloseOperation:JFrame.EXIT_ON_CLOSE, pack:true, show : true, size :[100,100])
{
panel
{
RSyntaxTextArea textArea = new RSyntaxTextArea();
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
}
}
И когда я пытаюсь запустить этот скрипт следующим образом:
groovyc -classpath rsyntaxtextarea.jar TextEditorDemo.groovy
Я получаю ошибки о том, что:
groovy: 9: unable to resolve class RSyntaxTextArea
@ line 9, column 19.
RSyntaxTextArea textArea = new RSyntaxTextArea();
^
/home/anto/Groovy/Rsyntax/ST.groovy: 9: unable to resolve class RSyntaxTextArea
@ line 9, column 30.
RSyntaxTextArea textArea = new RSyntaxTextArea();
^
/home/anto/Groovy/Rsyntax/ST.groovy: 10: unable to resolve class RSyntaxTextArea
@ line 10, column 7.
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
Думаю, я ошибся при запуске программы. Как мне запустить программу в этом случае, определив также путь к классам.
2 ответа
Не похоже, что вы импортируете пакет для RSyntaxTextArea. Вы пытались добавить следующие импорты в вашу программу?
import org.fife.ui.rtextarea.*;
import org.fife.ui.rsyntaxtextarea.*;
Этот код должен делать то, что вы хотите... Вам нужно было добавить RSyntaxTextArea
в вид (используя widget
метод)
Вы также должны были добавить его в JScrollPane
, так что он хорошо прокручивается при заполнении.
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
import static javax.swing.JFrame.EXIT_ON_CLOSE
import org.fife.ui.rsyntaxtextarea.*
RSyntaxTextArea textArea = new RSyntaxTextArea()
textArea.syntaxEditingStyle = SyntaxConstants.SYNTAX_STYLE_JAVA
swing = new SwingBuilder()
frame = swing.frame(title:"test", defaultCloseOperation:EXIT_ON_CLOSE, size:[600,400], show:true ) {
borderLayout()
panel( constraints:BL.CENTER ) {
borderLayout()
scrollPane( constraints:BL.CENTER ) {
widget textArea
}
}
}
редактировать
Без использования виджета ваш код должен выглядеть примерно так:
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
import static javax.swing.JFrame.EXIT_ON_CLOSE
import org.fife.ui.rsyntaxtextarea.*
RSyntaxTextArea textArea = new RSyntaxTextArea()
textArea.syntaxEditingStyle = SyntaxConstants.SYNTAX_STYLE_JAVA
swing = new SwingBuilder()
frame = swing.frame(title:"test", defaultCloseOperation:EXIT_ON_CLOSE, size:[600,400], show:true ) {
borderLayout()
panel( constraints:BL.CENTER ) {
borderLayout()
sp = scrollPane( constraints:BL.CENTER )
sp.viewport.add textArea
}
}