当前位置:   article > 正文

idea插件开发(5)-Idea的UI体系_idea swing ui设计器

idea swing 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()它返回的组件并将其添加到您的面板。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/112043
推荐阅读
相关标签
  

闽ICP备14008679号