1

ブラウザではなくアプリで URL を開きたいのですが、どうすればよいですか? webview が必要だと思います。jdk 6 で netbeans デスクトップ アプリを使用しています。

javafx が必要な場合、どうすれば使用できますか? チュートリアルを教えてください。

4

2 に答える 2

5

JEditorPanesetContentType()および を使用しない理由setText()

コンテンツ タイプを設定し、URL 応答から HTML を取得してJEditorPaneテキストを設定できます。

editor.setContentType( "text/html" );    
editor.setText( "<html><body>Hello, world</body></html>" );

アップデート:

いくつかの不具合がありますが、これは小さな例です:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class JEditorPaneTest extends JPanel {

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                final JFrame frame = new JFrame();
                JEditorPane editor = new JEditorPane();

                frame.getContentPane().add(editor);

                editor.setContentType("text/html");
                URL url = null;
                try {
                    url = new URL("http://www.google.co.za");
                } catch (MalformedURLException ex) {
                    Logger.getLogger(JEditorPaneTest.class.getName()).log(Level.SEVERE, null, ex);
                }

                BufferedReader in = null;
                try {
                    in = new BufferedReader(new InputStreamReader(url.openStream()));
                } catch (IOException ex) {
                    Logger.getLogger(JEditorPaneTest.class.getName()).log(Level.SEVERE, null, ex);
                }
                String inputLine;
                StringBuffer response = new StringBuffer();
                try {
                    while ((inputLine = in.readLine()) != null) {
                        response.append(inputLine).append("\n");
                    }
                    in.close();
                } catch (IOException ex) {
                    Logger.getLogger(JEditorPaneTest.class.getName()).log(Level.SEVERE, null, ex);
                }


                // editor.setText("<html><body>Hello, world</body></html>");
                editor.setText(response.toString());
                editor.setEditable(false);

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }
}

これには必要なものがありますが、JavaFX を検討WebViewする必要があります: http://docs.oracle.com/javafx/2/webview/WebViewSample.java.htm

ここからダウンロード: http://www.oracle.com/technetwork/java/javafx/downloads/index.html

Java FX と netbeans をセットアップするには、http: //netbeans.org/kb/docs/java/javafx-setup.htmlを参照してください。

于 2012-09-06T11:19:02.640 に答える
1

あなたの質問からは、アプリケーションをモジュールとして NetBeans プラットフォームに埋め込もうとしているのか、それとも NetBeans IDE を開発プラットフォームとして使用しているだけなのかよくわかりません。したがって、この回答は、両方を行う方法に関するリソースを提供します。

JavaFX WebView を NetBeans モジュールとして埋め込む

以下は、単純な JavaFX WebView ベースの html ブラウザを NetBeans モジュールに埋め込むサンプル プロジェクトです。このプロジェクトについて説明しているブログ エントリはこちらです。

WebView を使用したスタンドアロン JavaFX プログラム

imageshack リンクでページをレンダリングするサンプル JavaFX プログラムは次のとおりです。

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

public class GoogleSouthAfrica extends Application {
  public static void main(String[] args) { launch(args); }
  @Override public void start(Stage stage) {
    WebView webview = new WebView();
    webview.getEngine().load("http://www.google.co.za/");
    stage.setScene(new Scene(webview, 750, 450));
    stage.show();
  }
}

サンプル プログラムの出力は次のとおりです。 サンプルプログラムの出力

ここに、NetBeans IDE を使用したJavaFX アプリケーションへの HTML コンテンツの追加に関するチュートリアルへのリンクがあります。

于 2012-09-06T17:30:17.793 に答える