1

我一直在用 Java 实现一个客户端作为使用 Swing 的应用程序。但现在我也想从中构建 Applet。什么是重新设计/重构以便能够轻松构建它们并保持干燥的最佳方法。

这是一个简短的代码提取main()

public class Client {
    public static final ScheduledExecutorService SERVICE;
    protected static String host;
    protected static int port;

    static {
         SERVICE = Executors.newSingleThreadScheduledExecutor();
         host =
         port = 
    }

    public static void main(String[] args) {
         //initalize netty

         //create user interface = JFrame in SwingUtilities.invokeLater

         connect();
    }

    public static void connect () {
         //connect using netty
    }

所以我将这个文件复制为一个单独的文件,将其从 扩展JApplet并更改maininit,这样它就可以运行了,但它当然很难看,因为大部分代码只是复制粘贴的。

有没有通用的解决方案如何重新设计它?

升级版:

public class Client {
    public static void main (String[] args) {
        App app = new App();
        app.connect();
    }
}

public class Applet extends JApplet {
    public void init () {
        App app = new App();
        app.connect();
    }
}

并将所有初始化逻辑移至App

4

1 回答 1

3

将大部分应用程序删除到不依赖于顶级容器的类组。

这意味着,您可以根据需要重用/重新部署应用程序,而无需将自己链接到顶级容器。

然后,您将需要一个用于桌面入口点的“main”类和一个“applet”类。这将简单地构建应用程序主界面并将其附加到屏幕容器。

这就是为什么我们建议您永远不要直接从顶级容器覆盖的原因之一,而是从简单容器扩展您的应用程序逻辑/UI,例如JPanel

于 2012-12-28T08:52:09.017 回答