Popups
## 弹出窗口
- IntelliJ Platform *用户界面广泛使用弹出窗口 - 没有镶边的半模式窗口(显式关闭按钮),并在焦点丢失时自动消失。
在插件中使用这些控件可确保插件与IDE其余部分之间的一致用户体验。
弹出窗口可以选择显示标题,可选择移动和调整大小(并支持记住它们的大小),并且可以嵌套(在选择项目时显示另一个弹出窗口)。
该
界面允许您创建显示不同类型组件的弹出窗口,具体取决于您的特定需求。
最常用的方法是:
*createComponentPopupBuilder()
是最通用的,允许你显示任何
弹出窗口中的组件。
*createListPopupBuilder()
创建一个弹出窗口,用于从a中选择一个或多个项目
Swing JList。
*createConfirmation()
创建一个弹出窗口,用于在两个选项之间进行选择,并根据选择的选项执行不同的操作。
*createActionGroupPopup()
创建一个弹出窗口,显示操作组中的操作并执行用户选择的操作。
除了普通箭头键之外,操作组弹出窗口支持从键盘选择操作的不同方法。
通过传递其中一个常量
枚举,您可以选择是否可以通过按下与其序列号对应的键,键入其文本的一部分(速度搜索)或按下助记符来选择操作。
对于具有固定项目集的弹出窗口,推荐的选择方法是顺序编号;
对于具有可变和可能大量项目的弹出窗口,速度搜索通常效果最佳。
如果你需要创建一个类似于列表的弹出窗口,它比简单的弹出窗口更灵活
但是不想将可能的选择表示为动作组中的动作,您可以直接使用
界面和
JBPopupFactory.createListPopup()
方法。
通常您不需要实现整个界面; 相反,你可以从中得到
类。
要覆盖的关键方法是getTextFor()
(返回显示项目的文本)和onChosen()
(当选择项时调用)。
通过从onChosen()
方法返回一个新的弹出步骤,您可以实现分层(嵌套)弹出窗口。
一旦你创建了弹出窗口,你需要通过调用一个show()
方法来显示它。
你可以让IntelliJ平台根据上下文自动选择位置,调用showInBestPositionFor()
,或者通过showUnderneathOf()
和showInCenterOf()
等方法显式指定位置。
如果你需要在弹出窗口关闭时执行一些操作,你可以使用addListener()
方法附加一个监听器,覆盖弹出内容的方法,如
或者在弹出窗口中将事件处理程序附加到您自己的组件。