【问题标题】:How can I open a url in my app, not browser?如何在我的应用程序中打开网址,而不是浏览器?
【发布时间】:2012-08-31 04:49:23
【问题描述】:

我想在我的应用程序中打开一个网址,而不是在浏览器中。我该怎么做? 我想我需要一个 webview。我使用带有 jdk 6 的 netbeans 桌面应用程序

如果需要 javafx,我该如何使用它? 请给一些教程?

【问题讨论】:

  • 需要更多细节。我猜你不想只打开输入流并从 URL 中读取字节。
  • 你想在你的应用中显示页面吗?如果是这样,您使用的是哪个 GUI? SWT、Swing、...?
  • 我想在我的 java 应用程序中打开 google for ex。我想我需要一个窗格来显示它
  • 您使用什么类型的应用程序?您能详细说明一下您的要求吗?

标签: java html swing netbeans javafx


【解决方案1】:

为什么不使用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

【讨论】:

  • 感谢它的工作,但我把它的屏幕截图发给你了。它没有成功加载
  • @ErsinGulbahar 正如我所说的那样,它有问题。如果您不想使用 JavaFX,可能需要查看 3rd 方库
  • 是的,我想使用 javafx 但需要教程。我该如何使用
  • 我用的是java平台6,0我想用javafx有可能吗?
  • @ErsinGulbahar 是的,当然看到这里:oracle.com/technetwork/java/javafx/downloads/index.html
【解决方案2】:

根据您的问题,我不太确定您是尝试将应用程序作为模块嵌入到 NetBeans 平台中,还是仅使用 NetBeans IDE 作为开发平台。所以这个答案提供了如何做到这两点的资源。

将 JavaFX WebView 嵌入为 NetBeans 模块

这是一个sample project,它在 NetBeans 模块中嵌入了一个简单的基于 JavaFX WebView 的 html 浏览器。讨论该项目的博客条目是here

使用 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 的 Adding HTML Content to JavaFX Applications 教程的链接。

【讨论】:

  • 我无法导入 javafx jar 在哪里可以找到它。我使用的是 jdk6 平台而不是 javafx 平台
猜你喜欢
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2015-11-02
  • 1970-01-01
相关资源
最近更新 更多