【Java】IDEA中的JFormDesigner使用教程

目录

  • 1 安装 JFormDesigner 插件
  • 2 JFormDesigner 使用教程
    • 2.1 新建JFormDesigner Form时的选项
    • 2.2 JFormDesigner Form界面布局
    • 2.3 JFormDesigner 常用组件

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,新建一个简单的项目(具体见下文),在该项目中新建一个JFormDesigner Form:
    在这里插入图片描述
    填写相应的窗体名称,并选择相应的布局:
    在这里插入图片描述

  12. 在jfd文件中点击Register进行注册:
    在这里插入图片描述
    点击License File,并找到之前生成的密钥文件(或者打开密钥文件复制到文本框中):
    在这里插入图片描述
    在这里插入图片描述

  13. 接下来就可以畅快地使用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 常用组件

  1. JLabel(标签):用于显示文本或图像。它通常用于标识其他组件或提供有关其他组件的信息。
  2. JTextField(文本框):允许用户输入单行文本。它常用于接受用户输入,如用户名、密码等。
  3. JButton(按钮):用于触发操作的按钮。用户可以点击按钮来执行与按钮关联的操作,例如提交表单、保存文件等。
  4. JCheckBox(复选框):表示一个可以被选中或取消选中的复选框。常用于启用或禁用某些选项。
  5. JTable(表格):表示一个二维表格,用于显示和编辑表格数据。通常用于显示数据库查询结果或其他表格形式的数据。

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

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

相关文章

ZZULIOJ 1112: 进制转换(函数专题)

题目描述 输入一个十进制整数n,输出对应的二进制整数。常用的转换方法为“除2取余,倒序排列”。将一个十进制数除以2,得到余数和商,将得到的商再除以2,依次类推,直到商等于0为止,倒取除得的余数…

ZZULIOJ 1110: 最近共同祖先(函数专题)

题目描述 如上图所示,由正整数1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结 点(编号是1 的结点)都有一条唯一的路径,比如从10 到根结点的路径是(10, 5, 2, 1), 从4 到根结点的路径是(4, 2, 1)&#xff0…

xtu oj 1340 wave

题目描述 一个n列的网格,从(0,0)网格点出发,波形存在平波(从(x,y)到(x1,y)),上升波(从(x,y)到(x1,y1)),下降波(从(x,y)到(x1,y−1))三种波形,请问从(0,0)出发,最终到达(n,0)的不同波形有多少种&#xff1f…

关于 setData 同步异步的问题

小程序官方文档中的回答解释: 所以大概意思就是: 1.setData在逻辑层的操作是同步,因此this.data中的相关数据会立即更新,比如下面的例子: const a 1 this.setData({b: a ? a : , }) console.log(that.data.b) // 1 2. setData在视图层的操作是异步,…

本地开发环境请求服务器接口跨域的问题(vue的问题)

上面的这个报错大家都不会陌生,报错是说没有访问权限(跨域问题)。本地开发项目请求服务器接口的时候,因为客户端的同源策略,导致了跨域的问题。下面先演示一个没有配置允许本地跨域的的情况: 可以看到&…

Android可换行的RadioGroup

Android可换行的RadioGroup,有时候需要换行显示的单选列表,当然可以有多种实现方式,比如recycleview或者listview实现,本文采用的是RadioGrouprediobutton方式实现。由于RadioGroup仅支持水平布局与垂直布局,故需要自定义控件实现…

jenkins-cl参数化构建

pipeline片段(对应jenkins-cli -p参数的BRANCHdevelop) parameters {string(name: BRANCH, defaultValue: master, description: Enter the branch name)}stages {stage(Get Code) {steps {script {def branch params.BRANCHcheckout scmGit(branches: …

2024/1/14周报

文章目录 摘要Abstract文献阅读题目问题与创新方法A.CEMDAN方法B.LSTM网络C. CEEMDAN-LSTM模型 实验过程数据集与数据预处理参数设置评价指标和参数 实验结果 深度学习GRUGRU前向传播GRU的训练过程 总结 摘要 本周阅读了一篇基于CEEMDAN-LSTM的金融时间序列预测模型的文章&…

性能分析与调优: Linux 实现 缺页剖析与火焰图

目录 一、实验 1.环境 2.缺页(RSS增长)剖析与火焰图 一、实验 1.环境 (1)主机 表1-1 主机 主机架构组件IP备注prometheus 监测 系统 prometheus、node_exporter 192.168.204.18grafana监测GUIgrafana192.168.204.19agent 监测 主机 node_exporter…

redis夯实之路-集群详解

Redis有单机模式和集群模式。 集群是 Redis 提供的分布式数据库方案,集群通过分片( sharding )来实现数据共享,并提供复制和故障转移。集群模式可以有多个 master 。使用集群模式可以进一步提升 Redis 性能,分布式部署实现高可用性&#xff…

【Java 干货教程】Java实现分页的几种方式详解

一、前言 无论是自我学习中,还是在工作中,固然会遇到与前端搭配实现分页的功能,发现有几种方式,特此记录一下。 二、实现方式 2.1、分页功能直接交给前端实现 这种情况也是有的,(根据业务场景且仅仅只能用于数据量…

6、C语言:输入与输出

输入输出 标准输入输出getchar&putchar函数printf函数sprintf函数格式化输入——scanf函数 文件访问文件读写 错误处理:stderr和exit行输入和行输出常用函数字符串操作函数字符类别测试和转换函数存储管理函数数学函数随机数发生器函数其他 标准输入输出 getch…

x-cmd pkg | grex - 用于生成正则表达的命令行工具

目录 简介首次用户生成的正则表达式与 perl 和 rust 兼容支持 Unicode 符号友好的用户体验进一步阅读 简介 grex 是一个旨在简化创作正则表达式的复杂且繁琐任务的库和命令行程序。这个项目最初是 Devon Govett 编写的 JavaScript 工具 regexgen 的 Rust 移植。但 regexgen 在…

红酒和果酒推荐

一、红酒 首先,说一下大家常见的几十元红酒和贵的红酒的区别。 1.品牌价值。 2.工艺要求。 3.主要原料优质与否。几十元的红酒: 工艺要求没有高档红酒要求高,另外用的葡萄是榨的汁,品牌价值低(目前市场品牌推广的费…

vue组件通信

1. 概述 组件通信, 就是指 组件与组件 之间的数据传递。 注:组件的数据是独立的,无法直接访问其他组件的数据。所以需要了解组件通信 口诀:谁的数据谁处理 2. 组件关系 不同的组件关系包括: 父子关系(包含&#xff…

启英泰伦推出「离线自然说」,离线语音交互随意说,不需记忆词条

离线语音识别是指不需要依赖网络,在本地设备实现语音识别的过程,通常以端侧AI语音芯片作为载体来进行数据的采集、计算和决策。但是语音芯片的存储空间有限,通过传统的语音算法技术,最多也只能存储数百条词条,导致用户…

SOLID 原则

单一功能原则 单一功能原则(Single responsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的(这个类的)服务都应该严密的和该功能平行(功能平行&#x…

杨中科 EFCORE 第四部分 命令详解56-61

Migrations 深入研究Migrations 1、使用迁移脚本,可以对当前连接的数据库执行编号更高的迁移,这个操作叫做“向上迁移” (Up),也可以执行把数据库回退到旧的迁移,这个操作叫“向下迁移(Down) 2、除非有特殊需要&…

在Android原生项目中 创建 Flutter模块

前言 应用场景:在已有的Android原生项目中,引入Flutter模块,摸索了两天,终于给整出来了; 如果是新项目,最好直接创建Flutter项目,然后在Fluter的 android / ios目录中,写原生代码&…