eclipse 中是否有任何工具或插件可用于重新编译 Java GUI 应用程序

Is there any tool or plugin availabe in eclipse to recompile a Java GUI application

我在 Eclipse IDE 中的 GUI Java 应用程序中工作。我正在使用 Window Builder 来加速 UI 设计。 作为重构的一部分,我将顺序和重复的代码更改为其他包中的封装版本,这打破了“设计”视图,但不影响应用程序本身。 问题是对 ui 所做的任何更改都需要通过已编译的应用程序查看(在编译和 运行 我的意思是应用程序之后),并且我需要在任何时候手动重新启动应用程序变化。

那么,我的问题是:

是否有任何插件或工具可以检测更改并自动重新启动应用程序,就像 nodemon 在 Nodejs 应用程序中所做的那样。

提前致谢。

没有这样的工具 AFAIK。接下来是将程序置于调试模式,添加一个刷新按钮以重绘小部件并希望最好(JVM 可能会也可能不会 re-initialize 你的 class)。

或者,您可以创建一个 class 来监视文件系统的重新编译,然后重新启动您的应用程序。

所有的废话...

我能给你的最好建议是以 Windowbuilder 可以理解的方式重新设计你的应用程序。

我假设您已经将 UI 重构为多个模块化部分。如果您的 UI 包含例如一个 Customer Detail 面板和一个 Customer List 面板,您可能希望分别开发它们中的每一个。这是 WB 可以很好地处理的事情。

创建您的模块化 UI classes,使 WB 可以通过子classing 一个 Widget(最好是 Composite)来理解它们。下面的 class 可以添加到 Windowbuilder 的调色板中并拖到您的 'composite' 应用程序中。

    public class MyCustomerDetail extends Composite {

    public MyCustomerDetail(Composite pParent, int pStyle) {
        super(pParent, pStyle);

        GridLayout gridLayout = new GridLayout(2, false);
        setLayout(gridLayout);

        Label label = new Label(this, SWT.NONE);
        label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
        label.setText("Customer Name");

        Text name = new Text(this, SWT.SINGLE | SWT.LEAD | SWT.BORDER);
        name.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    }
}

不要使用 GUI 方法创建 POJO class。以下classWB无法处理,完全没有品味。

public class MyCustomerDetail {

    public void createUI(Composite pParent) {

        Label label = new Label(pParent, SWT.NONE);
        label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
        label.setText("Customer Name");

        Text name = new Text(pParent, SWT.SINGLE | SWT.LEAD | SWT.BORDER);
        name.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    }
}