gpt4 book ai didi

java - 我应该在 Actions 中创建 Swing 组件吗?

转载 作者:行者123 更新时间:2023-12-01 04:52:22 25 4
gpt4 key购买 nike

我正在为我的 Swing 组件创建操作,但是,它们通常需要生成确认 JDialog。我应该在 Action 本身内创建此 JDialog,还是应该将其传递给 Action,还是有其他方法?

示例

public static class Create extends AbstractAction {
@Override
public void actionPerformed(ActionEvent event) {
int selection = JOptionPane.showConfirmDialog(...);
// ... processing
}
}

这个示例很难进行单元测试,因为它涉及自动选择 JDialog(感觉像是代码味道)。

解决方案?

public static class Create extends AbstractAction {

private JDialog dialog = null;

public Create(JDialog dialog) {
this.dialog = dialog;
}

@Override
public void actionPerformed(ActionEvent event) {
dialog.display();
// ... processing
}
}

最佳答案

我会将对话框创建保留在 actionPerformed 中,并将以下处理逻辑移至单独的方法中,然后仅对该方法进行单元测试。对话框创建即可正常工作,无需对其进行单元测试。

关于java - 我应该在 Actions 中创建 Swing 组件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14760130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com