如何使用Groovy构建一个简单的IDE?

如何使用Groovy构建一个简单的IDE?,groovy,Groovy,下面是这个问题。我想为groovy和Java创建一个简单的IDE。此处复制代码以便于参考: 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() te

下面是这个问题。我想为groovy和Java创建一个简单的IDE。此处复制代码以便于参考:

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
    }
  }
}
现在我有了用户在
textarea
中输入的所有编码,这是
rsynataxtarea
的对象,我应该如何对用户编写的所有代码执行编译?在Groovy中是否有用于此目的的类或任何方法


提前谢谢

如果您查看groovy源代码下载的
src/main/groovy/ui
文件夹,您将看到使groovyConsole工作的代码

如果查看
ConsoleSupport
类,您将看到控制台的工作方式:

protected Object evaluate(String text) {
    String name = "Script" + counter++;
    try {
        return getShell().evaluate(text, name);
    }
    catch (Exception e) {
        handleException(text, e);
        return null;
    }
}
其中
getShell()
是:

public GroovyShell getShell() {
    if (shell == null) {
        shell = new GroovyShell();
    }
    return shell;
}

因此,它返回一个新的
GroovyShell
,如果已经存在,则返回一个退出的无法获取。。那么,我到底要如何处理我的代码呢?从RSyntaxTextArea获取文本,并使用一个实例
GroovyShell
?我尝试添加这一行
GroovyShell anto=ConsoleSupport.evaluate(textArea.getText())
。但是我得到了一个错误,因为
没有方法的签名:static groovy.ui.ConsoleSupport.evaluate()适用于参数类型:(java.lang.String)值:[]
。。我哪里出错了??!
ConsoleSupport
中的代码向您展示了Groovy控制台是如何做到这一点的(这基本上正是您试图编写的)。您需要这样的内容:
newgroovyshell().evaluate(textArea.text,“Script${System.currentTimeMillis()}”)