List and Tree Controls
JBList和Tree
每当你通常使用标准时
组件,建议使用
作为直接替换的类.
支持以下附加功能
-
如果项目不适合列表框宽度,则绘制带有项目完整文本的工具提示.
-
当列表框中不包含任何项目时,在列表框中间绘制一条灰色文本消息. 可以通过调用
getEmptyText().setText()
来定制文本. -
在列表框的右上角绘制一个忙碌图标,表示正在执行后台操作. 这可以通过调用
setPaintBusy()
来启用.
同样,
class提供了标准的替代品
类.
除了功能
它支持宽选画(Mac风格)和拖放自动滚动.
ColoredListCellRenderer和ColoredTreeCellRenderer
当您需要自定义列表框或树中的项目的表示时,建议使用
要么
类作为单元格渲染器.
这些类允许您通过调用append()
从具有不同属性的多个文本片段中组合演示文稿,并通过调用setIcon
为该项设置可选图标.
渲染器自动负责为所选项目和许多其他特定于平台的渲染详细信息设置正确的文本颜色.
ListSpeedSearch和TreeSpeedSearch
为了便于在列表框或树中选择项目的基于键盘,您可以使用它在其上安装速度搜索处理程序
和
这可以通过调用new ListSpeedSearch(list)
或new TreeSpeedSearch(tree)
来完成.
如果需要自定义用于定位元素的文本,可以覆盖getElementText()
方法.
或者,您可以传递一个函数将项目转换为字符串.
函数需要作为elementTextDelegate
传递给
构造函数或作为toString
来
构造函数.
ToolbarDecorator
插件开发中一个非常常见的任务是显示一个列表或树,允许用户添加,删除,编辑或重新排序项目.
该任务的实施极大地促进了
类.
此类提供了一个工具栏,其中包含对项目的操作,并且如果基础列表模型支持,则会自动启用对列表框中项目的拖放重新排序.
列表上方或下方的工具栏位置取决于运行IDE的平台.
要使用工具栏装饰器:
-
如果您需要支持删除和重新排序列表框中的项目,请确保列表的模型实现 EditableModel 接口. CollectionListModel 是一个实现此接口的方便模型类.
-
打电话 ToolbarDecorator.createDecorator 创建装饰器实例.
-
如果需要支持添加和/或删除项目,请调用
setAddAction()
和/或setRemoveAction()
. -
如果你需要除标准按钮之外的其他按钮,请调用
addExtraAction()
或setActionGroup()
. -
调用
createPanel()
并将它返回的组件添加到面板中.