com.intellij.openapi.ui.DialogWrapper是IntelliJ平台中用于创建对话框的基类,主要用于显示模式对话框和一些非模式对话框。以下是其核心功能和使用方法的详解:
主要功能
- 标准化按钮布局:自动处理不同操作系统下的按钮顺序(如macOS的"帮助"按钮位置)。
- 验证机制:支持非模式验证,当输入无效数据时可显示错误消息。
- 快捷键支持:内置Esc(关闭)、左右箭头(切换按钮)、Y/N(是/否操作)等快捷键。
- 可选复选框:可添加"不再询问"等复选框选项。
核心方法
-
createCenterPanel():必须重写的方法,返回对话框的主内容面板(通常与GUI设计器绑定的JPanel)。 -
show()/showAndGet():显示对话框并获取用户操作结果(通过getExitCode()判断关闭方式)。 -
createActions():自定义对话框按钮(如替换默认的"确定"/"取消"按钮)。
使用示例
典型开发流程:
- 继承
DialogWrapper并绑定GUI设计器窗体1。 - 通过
createCenterPanel()返回设计好的内容面板1。 - 调用
showAndGet()显示对话框并处理结果1。
扩展应用
- 自定义JS对话框:结合
CefJSDialogHandler可重写网页中的alert/confirm等原生弹窗样式2。 - 数据收集对话框:常用于插件中获取用户输入(如生成序列号、模块配置等)67。
注意事项
- 对话框通常与
AnAction配合使用,通过事件触发37。 - 建议使用
DialogWrapperExitAction作为关闭对话框的按钮基类1。
如需完整代码示例,可参考搜索结果中的具体实现案例16。