赞
踩
idea平台的UI是基于Swing开发,但在几个特殊组件上idea提供了优化的替代方案,建议但不强制使用。
上图中与Swing不太一样的组件主要有如下几个,将来编写插件时建议使用idea提供的组件,否则要自己写大量的功能性代码:
JBSplitter:替换JSplitPane
JBTabs:替换TabbedPane
Toolbars:替换JToolBar
对于其它的控件也建议换成IDEA的,方法就是把原来Swing控件的类名由J开头换成JB开头即可。
可以自己编码,也可以直接通过File | New | Swing UI Designer 创建Window或Dialog。常用的组件大体如下:
调试UI时,可使用 Tool | internal Tool 中附带的工具。
虽然可以使用Swing中的JTree和JList,但建议使用替换类JBTList和JBTree。因为性能被增强了
当您需要自定义列表框或树中项目的表示时,建议使用 或ColoredListCellRenderer类ColoredTreeCellRenderer作为单元格渲染器。
这些类允许您通过调用 将具有不同属性的多个文本片段组成演示文稿append(),并通过调用 为项目设置一个可选图标setIcon()。渲染器自动负责为所选项目设置正确的文本颜色以及许多其他特定于平台的渲染细节。
为了便于在列表框或树中基于键盘选择项目,您可以使用 和 在其上安装快速搜索处理ListSpeedSearch程序TreeSpeedSearch。new ListSpeedSearch(list)这可以简单地通过调用或来完成new TreeSpeedSearch(tree)。
要自定义用于定位元素的文本,请覆盖该getElementText()方法。或者,您可以传递一个函数将项目转换为字符串。需要将函数传递elementTextDelegate给ListSpeedSearch构造函数或构造toString函数TreeSpeedSearch。
对列表和树显示时一般都会有一些过滤、编辑等操作功能,这时就会有多个按钮,此时可使用ToolbarDecorator。
如果您需要支持删除和重新排序列表框中的项目,请确保您的列表模型实现了该EditableModel接口。CollectionListModel是实现此接口的便捷模型类。
调用ToolbarDecorator.createDecorator()以创建装饰器实例。
如果您需要支持添加和/或删除项目,请调用setAddAction()
和/或setRemoveAction()
。
如果您需要标准按钮以外的其他按钮,请致电addExtraAction()
或setActionGroup()
。
调用createPanel()
它返回的组件并将其添加到您的面板。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。