IntelliJ Platform SDK DevGuide

DialogWrapper

DialogWrapper

DialogWrapper

是基本类,它应该用于 IntelliJ Platform 插件中显示的所有模态对话框(以及一些非模态对话框).

它提供以下功能:

*按钮布局(特定于平台的“确定/取消”按钮,特定于macOS的“帮助”按钮)

*上下文帮助

  • 记住对话框的大小

  • 非模态验证(当输入对话框的数据无效时显示错误消息文本)

  • 键盘快捷键:

  • Esc用于关闭对话框

  • “左/右”用于在按钮之间切换

  • 如果对话框中存在“是/否”动作,则为“Y/N”

  • 可选`不要再问’复选框

使用时

DialogWrapper

对于您自己的对话框,您需要按照以下步骤操作:

  • 调用基类构造函数,并在框架中提供将显示对话框的项目,或者提供对话框的父组件.

  • 从对话框类的构造函数中调用init()方法

  • 调用setTitle()方法设置对话框的标题

  • 实现createCenterPanel()方法以返回包含对话框主要内容的组件.

    • 可选* :覆盖getPreferredFocusedComponent()方法并返回首次显示对话框时应该聚焦的组件.
  • 可选:重写getDimensionServiceKey()方法以返回将用于持久化对话框维度的标识符.

  • 可选:重写getHelpId()方法以返回与对话框关联的上下文帮助主题.

DialogWrapper

class通常与UI Designer表单一起使用.

在这种情况下,您将UI Designer表单绑定到您的类扩展

DialogWrapper

将窗体的顶级面板绑定到一个字段,并从createCenterPanel()方法返回该字段.

要显示对话框,可以调用show()方法,然后使用getExitCode()方法检查对话框的关闭方式.

要自定义对话框中显示的按钮(替换标准的“OK/Cancel/Help”按钮组),您可以覆盖createActions()createLeftActions()方法.

这两个方法都返回一个Swing Action对象数组.

如果您要添加的按钮关闭对话框,则可以使用

DialogWrapperExitAction

作为您行动的基类.

使用action.putValue(DialogWrapper.DEFAULT_ACTION,true)来设置默认按钮.

要验证输入到对话框中的数据,可以覆盖doValidate()方法.

该方法将由计时器自动调用.

如果当前输入的数据有效,则需要从实现中返回“null”.

否则,你需要返回一个

ValidationInfo

封装错误消息的类和与无效数据关联的可选组件.

如果指定一个组件,它旁边会显示一个错误图标,当用户尝试调用“OK”操作时它将被聚焦.

示例

简单定义一个

DialogWrapper:

public class SampleDialogWrapper extends DialogWrapper { public SampleDialogWrapper() { super(true); // use current window as parent init(); setTitle("Test DialogWrapper"); } @Nullable @Override protected JComponent createCenterPanel() { JPanel dialogPanel = new JPanel(new BorderLayout()); JLabel label = new JLabel("testing"); label.setPreferredSize(new Dimension(100, 100)); dialogPanel.add(label, BorderLayout.CENTER); return dialogPanel; } }

用法

DialogWrapper:

JButton testButton = new JButton(); testButton.addActionListener(actionEvent -> { boolean result = new SampleDialogWrapper().showAndGet(); if(result) { // user pressed ok } });
Last modified: 11 May 2019