我正在使用Swing将Java中的客户端实现为应用程序。但现在我想从中构建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
扩展并将main
更改为init
,以便可以运行,但当然它很难看,因为很多代码只是复制粘贴。
是否有通用解决方案如何重新设计?
UPD:
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
答案 0 :(得分:3)
将大部分应用程序移除到不依赖顶级容器的类组。
这意味着,您可以根据需要重复使用/重新部署应用程序,而无需将自己链接到顶级容器。
然后,您需要一个“主”类用于桌面入口点和“applet”类。这将简单地构造应用程序主界面并将其附加到屏幕容器。
这是我们建议您永远不要直接从顶级容器覆盖,但是从简单容器扩展应用程序逻辑/ UI的原因之一,例如JPanel