2011-07-29 30 views
0

正在關注這個問題Click Here。我想爲groovy和Java創建一個簡單的IDE。代碼是在這裏重現,以供參考:如何使用Groovy構建一個簡單的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這是RSynataxTextArea對象,我應該如何爲所有用戶編寫的代碼進行編譯進入了所有的編碼都?在Groovy中有沒有用於此目的的任何類或任何方法?

在此先感謝。

回答

1

我你在源代碼下載對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或如果已經存在的話,退出的那個

+0

找不到你..那麼,我到底需要用我的代碼呢? –

+0

從RSyntaxTextArea中獲取文本,並用'GroovyShell'的實例'evaluate()'來處理它? –

+0

我必須導入GroovyShell才能使用的所有包? –