2012-03-07 9 views
2

私のJavaFXプロジェクトでは、TinyMCEエディタをHTMLリッチテキストエディタとしてWebViewで統合しようとしています。ここでは、デモのアプリです:私は、NetBeans IDEを使用していますJar内でWebViewを介してTinyMCE Editorをロードするには?

package tinydemo; 

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.layout.StackPane; 
import javafx.scene.web.WebView; 
import javafx.stage.Stage; 

public class TinyDemo extends Application { 

    public static void main(String[] args) { 
     launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) { 
     primaryStage.setTitle("Demo"); 
     WebView webView = new WebView(); 
     webView.getEngine().load(TinyDemo.class.getResource("simple.html").toExternalForm()); 
     StackPane root = new StackPane(); 
     root.getChildren().add(webView); 
     primaryStage.setScene(new Scene(root, 500, 400)); 
     primaryStage.show(); 
    } 
} 

、パッケージビューは次のとおりです。

package

simple.htmlの内容:今

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Simple theme example</title> 
     <script type='text/javascript' src='jquery-1.5.2.min.js'></script> 
     <script type="text/javascript" src="tiny_mce/tiny_mce.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       var wewe = document.getElementById('wewe'); 
       wewe.innerHTML += '<br/>protocol: '+ document.location.protocol; 
       tinyMCE.init({ 
        mode : "textareas", 
        theme : "simple" 
       }); 
      }); 
     </script> 
    </head> 
    <body> 

     <div id="wewe"></div> 
     <h3>Simple theme example</h3> 
     <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 
       This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;. 
     </textarea> 
     <script type="text/javascript"> 
      if (document.location.protocol == 'file:') { 
       alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver."); 
      } 
     </script> 
    </body> 
</html> 

、私は実行Netbeansのアプリでは、TinyMCEエディタがファイルプロトコルを検出して順調に読み込みます。私は、フォルダdistのの下で、コマンドラインから生成TinyDemo.jarを実行したときに

build

しかし、私はこれを取得:TinyMCEのエディタが失敗した

jar

ロードする。私は問題がTinyMCEの絶対パス/相対パス参照であると思いますが、解決できませんでした。どんな助けもありがとうございます。ありがとう。

答えて

3

これによるとforum discussion thread相対リソースの読み込みは現在、JavaFXの2.1 developer previewでは正しく動作し、2.0GAバージョンでは正しく動作しません。

2.1プレビュー版のJavaFXにアップグレードした後も、jarからリソースをロードすることができない場合は、クラスパス上でパッケージ化されたjarの外側にTinyMCEをデプロイすることができます)jarプロトコルではなくファイルまたはhttp protcols。または、参照されているスレッドで説明したように、jarからリソースをロードするカスタムプロトコルハンドラを開発することもできます。

+0

まず、感謝の言葉** jewelsea **の提案。私は幸運とバージョン2.1のデビューのプレビューで試してみました。正確にどこに問題があるのか​​を判断できなかったので、カスタムプロトコルハンドラに何を書き込むか想像できません。しかし、TinyMCEをより軽量なHTMLエディタに置き換えることで、私の問題を解決しました。 –

+0

偉大なあなたはそれがUlukを働いている。エディタを埋め込むための別の例が必要な場合は、[JavaFXでのコードミラーの埋め込み](http://jewelsea.wordpress.com/2011/12/11/codemirror-based-code-editor-for-javafx/)を参照してください。これは、コードエディタを強調表示する構文であり、ストレートHTMLエディタではありません。また、JavaFXには、あなたのニーズに合わないと思われる組み込みの[HTMLエディタ](http://docs.oracle.com/javafx/2.0/api/javafx/scene/web/HTMLEditor.html)があります。 – jewelsea

+0

JavaFX 2.2でのテストに基づいて、jarファイルにtinyMCEをロードすることもできませんでした。私はそれが働くのを妨げる何かがtinyMCEにあるかもしれないと思う。私の "解決策"は、小さなMCEコードを瓶に入れないことでした。 – Avrom

関連する問題