以前在Swing中,我使用JSyntaxPane
来制作一个小的Java源代码编辑器。为了实践,我决定在JavaFX中重做整个项目并添加对更多语言的支持。最好尽可能多。
然而,似乎与JSyntaxPane
没什么相似之处。
我进行了一些研究Tom Schindl
的{{3}},他在那里制作了一个具有正确语法高亮的源代码查看器。遗憾的是没有编辑支持。
然后有JewelSea
的{{3}}但是从截图中看起来就像SO的type-and-preview
方法。在代码编辑器中不是所需的东西。
同样,从JFXperience
我发现在JavaFX 8中可以使用突出显示和缩进和编辑面板/节点,它还允许将Swing嵌入到Java中。
直到那时,我的其他选择是什么?
我知道JavaFX可以与JavaScript互操作,所以我有没有办法使用一些JavaScript库来实现同样的目标?
答案 0 :(得分:12)
有RichTextFX可让您进行突出显示。查看Java Keywords example。
请注意,它需要JDK8。
答案 1 :(得分:1)
我发布的编辑器示例不是类型和预览方法,它是使用WebKit嵌入(codemirror)JavaFX应用程序的JavaScript编辑器。您可以在here中找到相关的来源conception project或mini-IDE的更新版本。
答案 2 :(得分:1)
我目前通过WebEngine
在我的开源项目中使用Ace Editor。这是Kitchen Sink演示。
<强>更新强>
当前JDK版本的JS / FX交互的可能方法:
<div>
是您的编辑。嵌入FirebugLite从WebView
调试JS。唯一适用于我的版本是:
<script src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'>
一些通用建议 - 尽量避免JS-to-Java调用的复杂性。我向JavaFX团队提交了一些错误,因为一些简单的事情,比如重写一个方法对我来说不起作用。避免将Java对象传递给JS - 虽然理论上可行,但我总是遇到应用程序崩溃。所以现在我传递JSON并将其转换为双方的对象。
您可以have a look at a working example here使用AngularJS / JavaFX应用程序。它处于pre-alpha状态,因此它甚至可能无法在您的计算机上启动,但可以被视为AngularJS桌面应用程序的概念证明。