idea插件开发(5)-Idea的UI体系

        idea平台的UI是基于Swing开发,但在几个特殊组件上idea提供了优化的替代方案,建议但不强制使用。

一、idea的UI体系

官方文档

        上图中与Swing不太一样的组件主要有如下几个,将来编写插件时建议使用idea提供的组件,否则要自己写大量的功能性代码:

  • EditorTextField:JTextArea替换成IntelliJ 平台的编辑器组件增加了:语法高亮支持、代码完成、代码折叠等功能;
  • JBTList:替换JList
  • JBTree:替换JTree:
  • 文件选择器:可按需要使用FileChooser、TreeClassChooserFactory和PackageChooserDialog,后面两个是针对类和包的;
  • Messages:可通过showCheckboxMessageDialog()方法创建简单的消息框;
  • JBSplitter:替换JSplitPane

  • JBTabs:替换TabbedPane

  • Toolbars:替换JToolBar

对于其它的控件也建议换成IDEA的,方法就是把原来Swing控件的类名由J开头换成JB开头即可。

二、IDEA自带的Swing设计器

         可以自己编码,也可以直接通过File | New | Swing UI Designer 创建Window或Dialog。常用的组件大体如下:

        调试UI时,可使用 Tool | internal Tool 中附带的工具。

三、JBTList和JBTree

虽然可以使用Swing中的JTree和JList,但建议使用替换类JBTList和JBTree。因为性能被增强了

1、ColoredListCellRenderer 和 ColoredTreeCellRenderer

        当您需要自定义列表框或树中项目的表示时,建议使用 或ColoredListCellRenderer类ColoredTreeCellRenderer作为单元格渲染器。

        这些类允许您通过调用 将具有不同属性的多个文本片段组成演示文稿append(),并通过调用 为项目设置一个可选图标setIcon()。渲染器自动负责为所选项目设置正确的文本颜色以及许多其他特定于平台的渲染细节。

2、ListSpeedSearch 和 TreeSpeedSearch

        为了便于在列表框或树中基于键盘选择项目,您可以使用 和 在其上安装快速搜索处理ListSpeedSearch程序TreeSpeedSearch。new ListSpeedSearch(list)这可以简单地通过调用或来完成new TreeSpeedSearch(tree)。

        要自定义用于定位元素的文本,请覆盖该getElementText()方法。或者,您可以传递一个函数将项目转换为字符串。需要将函数传递elementTextDelegate给ListSpeedSearch构造函数或构造toString函数TreeSpeedSearch。

四、工具栏装饰器 

        对列表和树显示时一般都会有一些过滤、编辑等操作功能,这时就会有多个按钮,此时可使用ToolbarDecorator。

  • 如果您需要支持删除和重新排序列表框中的项目,请确保您的列表模型实现了该EditableModel接口。CollectionListModel是实现此接口的便捷模型类。

  • 调用ToolbarDecorator.createDecorator()以创建装饰器实例。

  • 如果您需要支持添加和/或删除项目,请调用setAddAction()和/或setRemoveAction()

  • 如果您需要标准按钮以外的其他按钮,请致电addExtraAction()setActionGroup()

  • 调用createPanel()它返回的组件并将其添加到您的面板。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

korgs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值