java - 将静态方法传递给按钮工厂 (Java)

标签 java button plugins swt

我正在为 Eclipse 编写一个小插件(使用 SWT),它创建一个带有几个按钮的 View 。为了不产生冗余代码,我想创建某种工厂方法来为我创建按钮。该调用类似于:

Button button0 = createButton(new Button(parent, SWT.PUSH), "Test DB zurücksetzen", btnHight, btnWidth, new FormAttachment(0, 2), new FormAttachment(0,2));

到目前为止,我的工厂看起来像这样:

private Button createButton(Button buttonToCreate, String buttonText, int height, int width, FormAttachment left, FormAttachment top) {

    buttonToCreate.setText(buttonText);
    FormData formData = new FormData();
    formData.height = height;
    formData.width = width;
    formData.left = left;
    formData.top = top;
    buttonToCreate.setLayoutData(formData);

    buttonToCreate.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Actions.editPropertys(); 
        }
    });

    return buttonToCreate;

}

我的问题是:如何将我想要执行的 Actions 类的方法作为参数传递给工厂?

最佳答案

您可以将其作为方法的 Runnable 参数来传递。

例如:

private Button createButton(Button buttonToCreate, String buttonText, int height, int width, FormAttachment left, FormAttachment top, Runnable actionOnSelection) {

  // ...
    buttonToCreate.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            actionOnSelection.run(); // change here
        }
    });
}

并调用它:

Button button0 = createButton(new Button(parent, SWT.PUSH), "Test DB zurücksetzen", btnHight, btnWidth, new FormAttachment(0, 2), new FormAttachment(0,2), 
                Actions::editPropertys); // other change here

关于java - 将静态方法传递给按钮工厂 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52660467/

相关文章:

python - Mac上某些按钮的IDLE崩溃

javascript - 无法将 npm 包添加到 nuxt js [vue-star- rating]

java - 如何使用 Akka actors 处理 Java futures

android - ImageButton:强制方形图标(高度=WRAP_CONTENT,宽度=?)

java - 处理覆盖范围之外生成的坐标

android - 返回调用应用程序时防止 SingleTask 应用程序关闭

php - 如何访问WordPress插件变量/MySQL数据?

c++ - 安装 EclipseCoder 插件运行 Topcoder Arena 后出错

java - 从 HashMap 中读取对象内容

java - Java 代码内部基准测试