9

以前は Swing でJSyntaxPane、小さな Java ソース エディタを作成するために を使用していました。練習のために、JavaFX でプロジェクト全体をやり直し、より多くの言語のサポートを追加することにしました。できれば、できるだけ多く。

ただし、 に似たものはないようJSyntaxPaneです。

ちょっとした調査の結果、適切な構文強調表示を備えたソース コード ビューアーを作成したTom Schindlブログにたどり着きました。残念ながら、編集サポートはありません。

それからJewelSeaブログtype-and-previewがありますが、スクリーンショットからは SO の方法のように見えます。コード エディターでは望ましくありません。

繰り返しにJFXperienceなりますが、強調表示、インデント、およびパネル/ノードの編集が JavaFX 8 で利用可能になり、Swing を Java に埋め込むこともできることがわかりました。

それまでは、他にどのようなオプションがありますか?

JavaFX が JavaScript と相互運用できることはわかっているので、JavaScript ライブラリを使用して同じことを実現する方法はありますか?

4

4 に答える 4

14

強調表示を行うことができるRichTextFXがあります。Java キーワードの例を確認してください。

JDK8 が必要であることに注意してください。

于 2014-02-01T16:17:17.503 に答える
2

現在、オープン ソース プロジェクトでAce EditorWebEngineを使用しています。これがキッチンシンクのデモです。

アップデート

現在の JDK バージョンの時点での JS/FX 相互作用への可能なアプローチ:

  • JS アプリ/ウィジェット部分を作成し、スタンドアロンでテストします。エディター ウィジェットを埋め込むだけの場合は、エディターである を含む空の Web ページである可能性があり<div>ます。
  • 次に、「JS からテキストを取得する」シナリオの計画は次のようになります。 .
  • Java-JS バインディングを学ぶ - つまりJavascript からの WebView コールバック
  • から JS をデバッグするために FirebugLite を埋め込みますWebView。私のために働いた唯一のバージョンは:

    <script src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'>

いくつかの一般的なアドバイス - JS から Java への呼び出しが複雑にならないようにしてください。メソッドのオーバーライドなどのいくつかの単純なことがうまくいかなかったため、JavaFX チームにいくつかのバグを報告しました。Java オブジェクトを JS に渡すことは避けてください - 理論的には可能ですが、私は常にアプリケーションのクラッシュに終わりました。だから今、私はJSONを渡し、それを両側のオブジェクトに変換しています.

AngularJS/JavaFX アプリケーションの実例をご覧ください。これはプレアルファの状態であるため、お使いのマシンで起動することさえできないかもしれませんが、AngularJS デスクトップ アプリの概念実証として見ることができます。

于 2013-10-26T08:02:28.433 に答える
1

私が投稿したエディタのサンプルは、タイプとプレビューの方法ではなく、WebKit を使用して JavaFX アプリケーションに埋め込まれた ( codemirror ) JavaScript エディタです。関連するソースはこちら、または概念プロジェクトのミニ IDE の更新バージョンを見つけることができます。

于 2013-10-26T06:15:34.597 に答える