IDEA插件开发(21)--List and Tree Controls
Posted 流子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA插件开发(21)--List and Tree Controls相关的知识,希望对你有一定的参考价值。
JBList 和树
每当您通常使用标准SwingJList组件时,建议使用JBList该类作为替代。JBList支持以下附加功能JList:
如果项目不适合列表框宽度,则使用项目的完整文本绘制工具提示。
当列表框不包含任何项目时,在列表框中间绘制一条灰色文本消息。可以通过调用自定义文本getEmptyText().setText()。
在列表框的右上角绘制一个忙碌的图标,表示正在执行后台操作。这可以通过调用来启用setPaintBusy()。
同样,Tree该类提供了标准JTree类的替代品。除了 的功能外JBList,它还支持广泛的选择绘画(Mac 风格)和拖放时自动滚动。
ColoredListCellRenderer 和 ColoredTreeCellRenderer
当您需要自定义列表框或树中项目的呈现方式时,建议使用ColoredListCellRendererorColoredTreeCellRenderer类作为单元格渲染器。这些类允许您通过调用将具有不同属性的多个文本片段组成表示,append()并通过调用为项目设置可选图标setIcon()。渲染器自动负责为选定项目和许多其他特定于平台的渲染细节设置正确的文本颜色。
ListSpeedSearch 和 TreeSpeedSearch
为了便于基于键盘选择列表框或树中的项目,您可以使用ListSpeedSearch和在其上安装速度搜索处理程序TreeSpeedSearch。这可以通过调用new ListSpeedSearch(list)或简单地完成new TreeSpeedSearch(tree)。要自定义用于定位元素的文本,请覆盖该getElementText()方法。或者,您可以传递一个函数将项目转换为字符串。需要将函数传递给elementTextDelegate构造ListSpeedSearch函数或构造函数。toStringTreeSpeedSearch
工具栏装饰器
插件开发中一个非常常见的任务是显示一个列表或树,用户可以在其中添加、删除、编辑或重新排序项目。类极大地促进了这项任务的实施ToolbarDecorator。如果底层列表模型支持,此类提供了一个带有项目操作的工具栏,并自动启用列表框中项目的拖放重新排序。工具栏在列表上方或下方的位置取决于运行 IDE 的平台。
要使用工具栏装饰器:
如果您需要支持列表框中项目的删除和重新排序,请确保您的列表模型实现了该EditableModel接口。CollectionListModel是一个方便的模型类,它实现了这个接口。
调用ToolbarDecorator.createDecorator()以创建装饰器实例。
如果您需要支持添加和/或删除项目,请调用setAddAction()和/或setRemoveAction().
如果您需要除标准按钮之外的其他按钮,请致电addExtraAction()或setActionGroup()。
调用createPanel()并将它返回的组件添加到您的面板。
以上是关于IDEA插件开发(21)--List and Tree Controls的主要内容,如果未能解决你的问题,请参考以下文章
IDEA插件系列(85):Day And Night插件——根据日程自动更改配色和主题
IDEA插件系列(96):Convert YAML and Properties File插件——yaml和properties文件相互转换