【Java】IDEA中的JFormDesigner使用教程

目录

  • 1 安装 JFormDesigner 插件
  • 2 JFormDesigner 使用教程
    • 2.1 新建JFormDesigner Form时的选项
    • 2.2 JFormDesigner Form界面布局
    • 2.3 JFormDesigner 组件
      • 2.3.1 Components基本组件
      • 2.3.2 Containers中间容器(面板)
      • 2.3.3 Windows顶级容器(窗口)
      • 2.3.4 Menus(菜单)
      • 2.3.5 JGoodies
      • 2.3.6 Binding

JFormDesigner 是一款用于设计和创建图形用户界面(GUI)的插件,它允许开发者使用可视化界面设计器轻松创建 Swing 和 AWT 界面。

本文将介绍在 IntelliJ IDEA 中使用 JFormDesigner 的简单步骤以及使用教程,同时用一个简单的登录界面案例展示IDEA中JFormDesigner的使用。

1 安装 JFormDesigner 插件

  1. 打开 IntelliJ IDEA ,点击File→Settings,打开软件设置:
    在这里插入图片描述

  2. 在Settings中选择Plugins,在右侧的搜索栏输入插件名JFormDesigner进行搜索,选择第一个插件,点击install进行下载安装,下载完成后会提示需重启IDEA:
    在这里插入图片描述

  3. 重启IDEA:
    在这里插入图片描述

  4. 重启IDEA后,点击Filey→Manage IDE Settings→Import Settings,复制本地IDEA的下载路径并在文件管理器中打开:
    在这里插入图片描述
    在这里插入图片描述

  5. 在文件管理器中进入上面的导入设置路径后,依次点击plugins→JFormDesigner→lib:
    在这里插入图片描述
    找到JFormDesigner-Idea.jar,此处需复制JFormDesigner-Idea.jar所在路径(注册机需要用到):
    在这里插入图片描述

  6. !!关闭IDEA!!
    准备开始注册JFormDesigner插件。

  7. 下载注册机:注册机下载地址

  8. (退出电脑杀毒软件)双击注册机打开,选择产品名称,点击Patch。
    在这里插入图片描述

  9. 选择第5步复制的JFormDesigner-Idea.jar所在路径,点击打开:
    在这里插入图片描述
    注册机提示匹配成功:
    在这里插入图片描述

  10. 在注册机中点击Generate,生成密钥:
    在这里插入图片描述
    保存该密钥到任意位置:
    在这里插入图片描述

  11. 点击Exit退出虚拟机,打开IDEA,点击File→:Settings,找到JFormDesigner,点击Register进行注册:
    在这里插入图片描述
    点击License File,并找到之前生成的密钥文件(或者打开密钥文件复制到文本框中):
    在这里插入图片描述
    在这里插入图片描述

  12. 接下来就可以畅快地使用JFormDesigner设计界面了~
    在这里插入图片描述

2 JFormDesigner 使用教程

2.1 新建JFormDesigner Form时的选项

当在IDEA中新建一个项目后,选择src新建JFormDesigner Form时,有多个选项可供选择,如下图所示:
在这里插入图片描述

  1. Name(名称):该Form的名称。
  2. SuperClass(超类):该 Form 继承的类。
    • JPanel: 一个轻量级容器,通常用于包含和组织其他 GUI 组件。它没有标题栏或边框,常用于将组件分组或创建复杂的界面。
    • JDialog:一个弹出式对话框窗口,通常用于显示与主窗口相关的临时信息、接收用户输入或执行特定任务。它可以有标题栏和可关闭按钮。
    • JFrame:顶层窗口,用于创建主应用程序窗口。它具有标题栏、最大化和最小化按钮,通常包含应用程序的主要界面。
    • other:允许指定任何其他的超类。
  3. Button bar(按钮栏):是否在 Form 的底部自动生成按钮栏,用于执行特定的操作或响应用户的输入。
    • OK / Cancel(确定/取消):同时生成OK和Cancel两个按钮。Cancel用于取消当前的操作或关闭对话框而不保存任何更改。如果用户不希望应用先前所做的更改,可以点击"Cancel"按钮。这通常用于撤销用户可能已经进行的修改。
    • OK(确定): 通常用于确认用户的选择或输入。当用户完成了某个操作或在对话框中进行了设置,并希望将其应用时,可以点击"OK"按钮。这会触发确认操作,将用户所做的更改保存并关闭对话框。
    • none(无):一个不执行任何操作的按钮,或者表示不选择任何选项。在某些上下文中,可能会使用"None"作为某个设置的默认选项,表示用户选择不设置任何特定的值。
    • Help(帮助):提供用户帮助和支持的按钮。点击"Help"按钮通常会打开相关的帮助文档或显示有关当前上下文的信息,以便用户了解如何使用应用程序或解决问题。
  4. Layout manager(布局管理器):
    • BorderLayout: 将组件放置在边界(North、South、East、West、Center)位置,适用于简单的布局需求。
    • BoxLayout:水平或垂直排列组件,可以是盒式布局(水平或垂直排列)或流式布局(按添加顺序排列)。
    • CardLayout:允许在同一容器中切换多个组件,只显示其中一个。适用于需要在不同视图间切换的场景,如向导式界面。
    • FlowLayout:按照添加顺序在行或列上排列组件,适用于简单的流式布局。
    • FormLayout(JGoodies):提供了更高级的表单布局,支持在表格中精确控制组件的位置和大小。
    • GridBagLayout:强大的布局管理器,可以在网格中精确控制组件的位置和大小。
    • GridLayout: 将组件放置在矩形的网格中,所有的单元格大小相等。适用于简单的网格布局。
    • GroupLayout(Free Design): GroupLayout 是 GroupLayout 提供的一种布局方式,可实现复杂的布局。
    • HorizontalLayout(SwingX):SwingX 库提供的水平布局,用于水平排列组件。
    • IntelliJ IDEA GridLayout:IntelliJ IDEA 特有的网格布局,与标准 GridLayout 有一些差异。
    • MigLayout: 强大而灵活的布局管理器,可以应对各种复杂的布局需求。
    • null Layout:不使用任何布局管理器,组件的位置和大小需要手动设置。
    • TableLayout:使用表格形式排列组件,支持相对和绝对定位。
    • VerticalLayout:SwingX 库提供的垂直布局,用于垂直排列组件。
  5. Store strings in resource bundle (properties file):用于启用或禁用本地化支持。启用本地化支持后,JFormDesigner 将为每个组件生成一个 .properties 文件,用于存储本地化文本。这对于多语言应用程序是非常有用的,因为它允许你轻松地将应用程序的文本翻译成不同的语言。
    • Resource Bundle Name(资源包名称): 资源包是包含本地化信息的文件,其中包括文本字符串、图像和其他本地化资源。资源包名称是指用于标识和加载这些资源包的名称。在 Java 中,这通常是一个属性文件,例如 messages.properties。通过使用不同的资源包名称,开发者可以为不同的语言或地区提供相应的本地化资源。
      例如,在 Java 中,可以使用 ResourceBundle.getBundle("messages", locale) 来获取与特定区域设置(locale)相关的资源包。这里的 “messages” 就是资源包名称。
    • Prefix for Generated Keys(生成的键的前缀): 在本地化资源文件中,每个本地化字符串都与一个唯一的键相关联。生成这些键时,有时会使用前缀来提供更多的上下文信息或防止冲突。
      例如,如果有一个按钮的标签需要本地化,可以使用键值对,其中键可能是 “button.ok” 或 “button.cancel”。在这里,“button” 就是生成的键的前缀,有助于组织和区分不同部分的本地化字符串。
    • Auto-externalize strings:是否自动将应用程序中的字符串提取出来,以便更容易进行本地化。

2.2 JFormDesigner Form界面布局

在这里插入图片描述

2.3 JFormDesigner 组件

2.3.1 Components基本组件

  1. JLabel(标签):非可编辑文本组件,用于显示单行文本或图像。它通常用于标识其他组件或提供有关其他组件的信息。
  2. JTextField(文本输入框):允许用户输入和编辑单行文本。它常用于接受用户输入,如用户名、密码等。
  3. JComboBox(下拉列表):提供一个下拉菜单,用户可以从中选择一个选项。适用于需要用户在预定义选项中进行选择的场景。
  4. JButton(按钮):在用户点击时触发动作的按钮。用户可以点击按钮来执行与按钮关联的操作,例如提交表单、保存文件等。
  5. JCheckBox(复选框):允许用户选择或取消选择一个或多个选项,适用于开启或关闭特定功能或选项。
  6. JRadioButton(单选按钮):允许用户从一组互斥选项中选择一个,常用于需要用户在几个相关选项中进行单一选择的情况。
  7. JToggleButton(切换按钮):可以在按下和未按下状态之间切换的按钮,适用于需要用户切换两种状态的场景。
  8. JTextArea(多行文本输入区):允许用户输入和编辑多行文本,通常用于需要用户输入大段文本的场景。
  9. JFormattedTextField(格式化文本输入框):限制用户输入特定格式的文本,可用于确保用户按照特定要求输入数据。
  10. JPasswordField (密码输入框):专为密码输入而设计的文本输入字段,以保护用户输入的密码信息不可见。
  11. JTextPane(样式文本显示):支持样式文本的文本组件,允许在同一文档中使用不同的样式,适用于需要显示富文本内容的场景。
  12. JEditorPane(富文本编辑器):支持富文本编辑和HTML显示的文本组件,用于需要用户编辑富文本内容的场合。
  13. JSpinner(数值选择器):允许用户从范围中选择一个值的组件,适用于需要用户在一定范围内选择数值的场景。
  14. JList(列表):显示项目列表以供用户选择的组件。用于显示一列项目,用户可以选择一个或多个。
  15. JTable(表格):表示一个二维表格,用于显示和编辑表格数据。通常用于显示数据库查询结果或其他表格形式的数据。
  16. JTree(树形结构):以树形结构显示分层数据的组件,常用于呈现层次结构的数据。
  17. JProgressBar(进度条):表示任务进度的可视组件,用于显示某项任务的完成百分比。
  18. JScrollBar(滚动条):允许用户在大量内容中滚动的组件。通常与其他组件一起使用,以显示超过可见区域的内容。
  19. JSeparator(分隔符):用于分组组件的可视分隔符。可用于增强UI的可读性和组织性。
  20. JSlider(滑块):允许用户从连续范围中选择一个值的组件。用于需要用户在一个范围内选择数值的场景。
  21. Action(动作):封装动作的对象,可与各种UI组件关联,是用于处理用户操作的通用方式。
  22. Horizontal Spacer/Vertical Spacer(水平和垂直间隔器):用于布局目的的组件,用于在其他组件之间添加空间。有助于控制组件之间的距离和布局。

2.3.2 Containers中间容器(面板)

  1. JPanel:用于组织和布局其他组件的通用容器。
  2. JTabbedPane:允许用户在多个选项卡之间切换的容器,每个选项卡包含不同的组件。
  3. JScrollPane:提供另一个组件的可滚动视图的容器。
  4. JSplitPane:允许用户水平或垂直调整和分割两个组件的容器。
  5. JToolBar:用于工具栏组件的容器。
  6. JToolBar Separator:用于在工具栏中视觉上分组组件的分隔符。
  7. JDesktopPane:在桌面样式GUI中管理内部框架的容器。
  8. JInternalFrame:存在于另一个框架内部的框架。
  9. JLayeredPane:允许组件层叠在彼此上方的容器。

2.3.3 Windows顶级容器(窗口)

  1. JDialog:表示对话框的顶级容器。
  2. JFrame:表示应用程序主窗口的顶级容器。
  3. JWindow:表示辅助窗口的顶级容器。
  4. Dialog/Frame/Window:表示对话框框架和窗口的通用类。

2.3.4 Menus(菜单)

  1. JMenuBar:用于组织菜单的容器。
  2. JMenu:下拉菜单。
  3. JMenuItem:菜单中的项目。
  4. JCheckBoxMenuItem:带有复选框的菜单项。
  5. JRadioButtonMenuItem:带有单选按钮的菜单项。
  6. Menu Separator:菜单中的可视分隔符。
  7. JPopupMenu:响应右键单击而出现的弹出菜单。

2.3.5 JGoodies

  1. Label:一个标签组件。
  2. Titled Separator:带有标题的分隔符。
  3. Title:用于显示有标题部分的组件。

2.3.6 Binding

  1. List:显示项目列表的组件。
  2. ObservableList/ObservableMap:用于处理可观察列表和映射的类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/631408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给科研人的 ML 开源发布工具包

什么是开源发布工具包? 恭喜你的论文成功发表,这是一个巨大的成就!你的研究成果将为学界做出贡献。 其实除了发表论文之外,你还可以通过发布研究的其他部分,如代码、数据集、模型等,来增加研究的可见度和采…

【从0上手cornerstone3D】如何加载nifti格式的文件

在线演示 支持加载的文件格式 .nii .nii.gz 代码实现 npm install cornerstonejs/nifti-volume-loader// ------------- 核心代码 Start------------------- // 注册一个nifti格式的加载器 volumeLoader.registerVolumeLoader("nifti",cornerstoneNiftiImageVolu…

Qt/C++编写视频监控系统83-自定义悬浮条信息

一、前言 一般视频控件上会给出个悬浮条,这个悬浮条用于显示分辨率或者一些用户期望看到的信息,一般常用的信息除了分辨率以外,还有帧率、封装格式、视频解码器名称、音频解码器名称、实时码率等,由于实际的场景不一样&#xff0…

el-date-picker默认结束为当前时分秒

在element ui中的日期时间选择组件中默认是00:00,现在需求是点击默认结束时间为当前时分秒,查了很多资料写的都不准确 需求:实现日期时间组件可选择当前日期,比如当前是2024年01月17号下午17:21 那选中时必须结束时间为17&#x…

页面数据类型为json,后端接受json数据

项目结构 依赖pom.xml <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework…

小白准备蓝桥杯之旅(c/c++b组)

前言&#xff1a;省赛获奖比例高达百分之60,只要比一半的人努力&#xff0c;你就能大概率获奖。 寒假做的3件事 1.稳基础 熟练掌握基础语法部分&#xff0c;c比c多个stl库优势&#xff0c;c语言的同学需要会实现c中stl库部分 2.刷真题 大概比赛前30天&#xff0c;坚持每天做…

Redis集群优化

文章目录 前言集群完整性问题集群带宽问题 前言 集群虽然具备高可用特性&#xff0c;能实现自动故障修复&#xff0c;但是如果使用不当&#xff0c;也会存在一些问题 集群完整性问题集群带宽问题数据倾泻问题客户端性能问题命令的集群兼容性问题Lua和事务问题 集群完整性问题…

低代码配置-属性配置面板设计

模块设计 tab项切换 组件基础属性组件数据属性组件事件属性表单属性 模块输出函数设计 tab切换函数 列表表单属性 数据来源&#xff1a; 调用接口时一次赋予&#xff0c;无需使用selectItem&#xff0c;如需使用&#xff0c;归入基础属性列表标题是否展示筛选区域 示例&am…

输入框输入关键字 下拉框的关键字高亮

直接上代码 //搜索框部分 <div><input v-modelkeyWord /><button clickseachFn>搜索</button> </div> //下拉框部分 <div><div v-html"item.name" v-foritem in droplist :keyitem.id></div> </div> <sc…

centos环境下安装nginx+简单使用nginx

参考&#xff1a; https://www.cnblogs.com/chaofanq/p/15022916.html Nginx安装使用教程 - 简书 1.安装 1.1 下载一下 nginx: download 选择稳定版本下载 1.2 上传到虚拟机 cd /usr/local/src/ 1.3 进入目录开始解压 tar -xvf nginx-1.24.0.tar.gz 1.4 安装 cd nginx…

我帮企业找市场|福田供应链企业走进佛山,刮起“两业融合”新旋风!

前言&#xff1a; 2023年以来&#xff0c;福田区锚定高质量发展首要任务&#xff0c;鼓实劲、出实招、求实效&#xff0c;继推出“万名干部助企行”“我帮企业找市场”“我帮企业找资金”等系列服务举措后&#xff0c;坚持系统、全面完善产业支持政策&#xff0c;打造产业发展最…

QT中操作word文档

QT中操作word文档&#xff1a; 参考如下内容&#xff1a; C(Qt) 和 Word、Excel、PDF 交互总结 Qt对word文档操作总结 QT中操作word文档 Qt/Windows桌面版提供了ActiveQt框架&#xff0c;用以为Qt和ActiveX提供完美结合。ActiveQt由两个模块组成&#xff1a; QAxContainer模…

SpringBoot整合MyBatis项目进行CRUD操作项目示例

文章目录 SpringBoot整合MyBatis项目进行CRUD操作项目示例1.1.需求分析1.2.创建工程1.3.pom.xml1.4.application.properties1.5.启动类 2.添加用户2.1.数据表设计2.2.pojo2.3.mapper2.4.service2.5.junit2.6.controller2.7.thymeleaf2.8.测试 3.查询用户3.1.mapper3.2.service3…

【用法总结】LiveData组件要点

【用法总结】LiveData组件要点 1、如何实现和生命周期的关联&#xff1f;1.1 observe的实现逻辑&#xff1a;1.2 观察者的装饰者&#xff1a;ObserverWrapper1.3 观察者集合的存储&#xff1a;SafeIterableMap<Observer<? super T>, ObserverWrapper>&#xff0c;…

Linux第30步_通过USB OTG将固件烧写到eMMC中

学习目的&#xff1a;在Win11中&#xff0c;使用STM32CubeProgrammer工具&#xff0c;通过USB OTG将固件烧写到eMMC中。 安装软件检查&#xff1a; 1、是否安装了JAVA; 2、是否安装了STM32CubeProgrammer工具; 3、是否安装 了DFU驱动程序; 4、是否安装了“Notepad”软件; …

机器学习之卷积神经网络

卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此又称为SIANN。卷积神经网络仿照生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的…

Verilog刷题笔记16

题目&#xff1a; Since digital circuits are composed of logic gates connected with wires, any circuit can be expressed as some combination of modules and assign statements. However, sometimes this is not the most convenient way to describe the circuit. Pro…

嵌入式软件工程师面试题——2025校招社招通用(二十一)

说明&#xff1a; 面试群&#xff0c;群号&#xff1a; 228447240面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但…

软件开发架构

【 一 】软件开发架构图 【 1】ATM和选课系统 三层的开发架构 前段展示台 后端逻辑层 数据处理层 【二】软件开发架构的步骤流程 需求分析&#xff1a;在软件开发架构设计之前&#xff0c;需要对应用系统进行需求分析&#xff0c;明确用户需求、功能模块、业务流程等内容。…

CSS Day10

10.1 2D位移 属性名&#xff1a;transform 属性值&#xff1a;translateX 水平方向的位移 相对于自身位置移动 translateY 垂直方向的位移 相对于自身位置移动 transform&#xff1a;translate(x,y); 位移和定位搭配使用&#xff1a; position:absolute; top:50%; left:50%; tr…