【问题标题】:Converting a simple Applet GUI from Swing to JavaFX将简单的 Applet GUI 从 Swing 转换为 JavaFX
【发布时间】:2014-08-11 19:46:40
【问题描述】:

我正在尝试创建一个小程序,用一个不错的 JavaFX GUI 代替令人困惑的 CLI。我在 GUI 设计方面没有丰富的经验,我们在课堂环境中学到的大部分内容是 Swing/AWT。玩弄了一点 JavaFX,我觉得它已经证明要好得多,但是关于创建旨在作为小程序运行的 JavaFX 程序的好的教程/文章并不多。现在,我什至无法将以下简单的登录 UI 从 Swing 转换为 JavaFX。

import java.applet.Applet;
import java.awt.*;
import javax.swing.*;


public class ACLEditor extends Applet {

    public void init() {

        /* Basic Layout */
        setLayout(new GridLayout(5, 2));

        /* Components */
        JLabel username_l = new JLabel("Username:");
        JTextField username = new JTextField("", 10);
        JLabel password_l = new JLabel("Password:");
        JPasswordField password = new JPasswordField("", 10);
        JLabel hostname_l = new JLabel("Hostname:");
        JTextField hostname = new JTextField("0.0.0.0", 10);

        JButton connect_btn = new JButton("Connect");

        /* Place all Controls on the Layout */
        add(username_l);
        add(username);
        add(password_l);
        add(password);
        add(hostname_l);
        add(hostname);
        add(connect_btn);

    }


}

对此的任何帮助将不胜感激。 注意:我确实了解如何为独立应用程序创建 JavaFX UI,但我似乎无法掌握如何将其制成小程序

【问题讨论】:

  • Applet 有点不受欢迎,因为很难让它们与浏览器安全一起工作。 “如何将 JavaFX 应用程序部署为小程序”可能会花费太多时间来编写完整的 SO 答案,但有一个部署指南 here 其中包括小程序部署。
  • 是的,我在“不受信任的应用程序”中遇到了几次浏览器安全问题,并尝试使用 HTML5 + WebSockets 完成该项目,但结果惨遭失败。 Applet 是迄今为止我已经成功实现(又名理解)的最好的 Java 实现,所以如果有意义的话,我会“坚持”使用它们。

标签: java swing applet javafx


【解决方案1】:

从 JavaFX 8 开始,您可以使用 JavaFX packaging tools and deployment toolkit 在某些桌面浏览器中部署 JavaFX 应用程序。关于这种方法有一些注意事项。其中一些的简要说明和如何部署的摘要位于:JavaFX - can it really be deployed in a browser?

您不需要 JFXPanel 来实现这一点,除非您的应用也使用 Swing 控件,否则我不推荐使用 JFXPanel。

【讨论】:

    【解决方案2】:

    环顾四周后,似乎将 JavaFX 元素合并到使用 Swing UI 架构的项目(如我的小小程序)中的最佳方法是将这些元素放在 JFXPanel 上。

    http://docs.oracle.com/javafx/2/api/javafx/embed/swing/JFXPanel.html

    这将允许以与最初相同的方式部署小程序,同时还可以向 GUI 添加漂亮的 JavaFX 组件。

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多