Caros programadores…
Criei um textArea em JavaFx onde postei um determinado código em java. Esse código foi postado dentro do textArea através de uma String, sem formatação ou qualquer outra coisa do genero.
EX:
String x = "codigos de java...";
textArea.setText(x);
Gostaria de colocar o código dessa String em alta sintaxe… para que eu possa visualizar melhor as palavras chaves dentro do textArea.
[color=orange]Andei pesquisando e estudando[/color] e fiquei sabendo que não é preciso criar toda a lógica de alta sintaxe do zero, pois existe essa lógica pronta em projetos open source’s que outras pessoas ja criaram.
Consegui encontrar dois deles:
1 - Pode ser encontrado em vários sites da internet que possuem alta sintaxe…
http://alexgorbatchev.com/SyntaxHighlighter/
2 - Quem desenvolveu foi a equipe do google.
https://code.google.com/p/google-code-prettify/
Esses projetos são disponibilizados em JavaScripts. O meu problema é fazer o textArea reconhecer o arquivo .js e aplicar a alta sintaxe no textArea.
Estava estudando as maneiras de fazer a plataforma java reconhecer o javascript, [color=orange]mas não consegui obter sucesso.[/color]
Estava seguindo esse artigo:
http://fredericobenevides.wordpress.com/2009/03/27/rhino-executando-codigo-de-javascript-na-plataforma-java/
Alguem poderia me instruir de forma mais detalhada como eu uso a seguinte estrutura?
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval("println('JavaScript Executando')");
Grato…
Caros programadores…
Continuo pesquisando e estudando. Optei por usar o Prettify(SyntaxHighlighter open source da Google).
Estou seguindo este artigo da Sun:
http://docs.oracle.com/javafx/2/get_started/fxml_tutorial.htm
Seguindo o artigo acima fiz as seguintes modificações no meu fxml:
<fx:script source="prettify.js"/>
<stylesheets>
<URL value="@prettify.css" />
</stylesheets>
Porém, surgiu os seguintes erros:
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "window" is not defined. (<Unknown source>#66) in <Unknown source> at line number 66
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:224)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
at javafx.fxml.FXMLLoader$ScriptElement.processStartElement(FXMLLoader.java:1323)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2314)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2131)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2028)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2744)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2723)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2709)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2696)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2685)
at br.com.exercises.main.Main.start(Main.java:21)
at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:215)
at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:176)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:176)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
at java.lang.Thread.run(Thread.java:722)
Caused by: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "window" is not defined. (<Unknown source>#66)
at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3771)
at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3749)
at sun.org.mozilla.javascript.internal.ScriptRuntime.notFoundError(ScriptRuntime.java:3834)
at sun.org.mozilla.javascript.internal.ScriptRuntime.name(ScriptRuntime.java:1761)
at sun.org.mozilla.javascript.internal.Interpreter.interpretLoop(Interpreter.java:1785)
at sun.org.mozilla.javascript.internal.Interpreter.interpret(Interpreter.java:849)
at sun.org.mozilla.javascript.internal.InterpretedFunction.call(InterpretedFunction.java:162)
at sun.org.mozilla.javascript.internal.ContextFactory.doTopCall(ContextFactory.java:429)
at com.sun.script.javascript.RhinoScriptEngine$1.superDoTopCall(RhinoScriptEngine.java:116)
at com.sun.script.javascript.RhinoScriptEngine$1.doTopCall(RhinoScriptEngine.java:109)
at sun.org.mozilla.javascript.internal.ScriptRuntime.doTopCall(ScriptRuntime.java:3161)
at sun.org.mozilla.javascript.internal.InterpretedFunction.exec(InterpretedFunction.java:173)
at sun.org.mozilla.javascript.internal.Context.evaluateReader(Context.java:1159)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:214)
... 21 more
WARNING: com.sun.javafx.css.parser.CSSParser parse CSS Error parsing jar:file:/C:/Users/Jo%c3%a3o/Documents/NetBeansProjects/Exercises_by_Moog/dist/Exercises_by_Moog.jar!/br/com/exercises/src/prettify.css: Expected LBRACE at [24,40]
Alguem sabe o que essa referencia de erro a “Window não definida” significa?