【Java】IDEA中的JFormDesigner使用教程

news2024/11/18 2:53:23

目录

  • 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.coloradmin.cn/o/1385095.html

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

相关文章

DAY8--learning english

一、积累 1.haunt Why Ghost dont haunt chinese. 为什么鬼不会出现在中国人旁边? 2.confess i have a confession to make ... I actally a blind. 我要坦白一件事……我其实是个盲人。 3.brake Press S button to brake, or to reverse if the vehicle has stopped, 按住…

python 列表的高级应用

当前版本: Python 3.8.4 简介 列表(list)是Python编程语言中的基本数据类型之一,也是一个非常重要的通用序列。在其它编程语言中,它们通常被称为“数组”。可以存储多个元素,包括数字、字符串、甚至其他列…

【纯CSS特效源码】(二)精美的立体字

1.漂浮感立体 关键处: text-shadow:2px -2px white, -6px 6px gray;给字体添加了两层shadow,右上角白色提亮,左下角灰色阴影。 参数解释:例子中2px -2px white,代表右上角白色 第一个参数2px:正数表示从左…

CSS 实现三角形的技巧

目录 1、使用 border 绘制三角形 2、使用 linear-gradient 绘制三角形 3、使用 conic-gradient 绘制三角形 4、transform: rotate 配合 overflow: hidden 绘制三角形 5、使用 clip-path 绘制三角形 6、利用字符绘制三角形 1、使用 border 绘制三角形 使用 border 实现三角…

pinia的理解

Vue组件通讯类型 组件通讯的基本概念 以及pinia和vuex之间的一些差异 父子,子父,祖孙跨层级,非父子任意组件之间的通讯,对此进行一些介绍。 而无论是vuex还是pinia都是属于非父子组件之间任意通讯的一种状态管理模式&#xff0…

Python爬虫|使用urllib获取百度首页源码

在这个博客中,我们将一起探索百度首页的源码,深入了解从URL请求到页面呈现的全过程。我们将使用Python的urllib.request库来模拟浏览器发送请求,并解码响应中的页面源码。通过分析源码,我们将揭示网页的结构、内容和背后的工作原理…

mysql的gtid主从复制,从库误操作更新操作,

一:查看mysql的从库,发现sql进程状态 “no”.提示执行传输过来的binlog日志,执行失败, 二:查看主库对应的二进制日志的gtid地方。插入一些数据。 # mysqlbinlog --base64-outputdecode-rows -v mysql-bin.000001 |gre…

echarts -- 柱状图之柱状条如何显示白色侧阴影且鼠标移入时高亮

有个图表是要求柱状条的右下侧显示一个白色的侧阴影,一直没找到合适的方法, 加border或者shadowColor都达不到需求的效果。 因为柱状图 中series里可以包含多组数据,有几组就代表一个系列中有几个数据。这就代表series里要写七组数据。 对于上…

git-生成证书、公钥、私钥、error setting certificate verify locations解决方法

解决方法 方法1-配置证书、公钥、私钥打开Git Bash设置名称和邮箱执行,~/.ssh执行,ssh-keygen -t rsa -C "这是你的邮箱",如图:进入文件夹可以看到用记事本之类的软件打开id_rsa.pub文件,并且复制全部内容。…

动态规划篇-04:完全平方数

279、完全平方数 状态转移方程 base case 当n 0 时,和为n的完全平方数的最少数量为0. 明确状态 “原问题或子问题中变化的变量” 在本题中,状态是 “完全平方数的最少数量”。因为当我们选择不同的完全平方数的时候,所需完全平方数的数量…

两个Mesh路由、一个5口交换机,打造智能家居无缝网络覆盖

在现代家庭中,无线网络已经成为了必需品,每个人都希望享受到无缝连接的畅快体验。然而,由于信号覆盖范围的限制和信号干扰等问题,很多家庭在组网方面遇到了一些困难。 对于有需求的家庭而言,两个Mesh路由器是一种非常…

错误处理(基于ESP-IDF)

主要参考资料 B站Up主孤独的二进制《错误处理 - 乐鑫 ESP32 物联网开发框架 ESP-IDF 开发入门》 ESP-IDF编程指南>API指南>错误消息: https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32s3/api-guides/error-handling.html ESP-IDF编程指南>API指南>严…

Python - 深夜数据结构与算法之 BloomFilter

目录 一.引言 二.BloomFilter 简介 1.Hash Table 2.Bloom Filter 3.Bloom 示意图 4.Bloom 应用 三.Bloom Filter 实现 1.Python 实现 2.Python 测试 四.总结 一.引言 布隆过滤器 BloomFilter 是位运算在工业级场景应用的典范,其通过 bit 位保存元素是否存…

Linux/Traverxec

Enumeration nmap 使用nmap快速扫描目标,发现对外开放了22和80,第一个问题就是问80端口运行的是什么服务,针对这两个端口扫描对应的详细信息后就能得到答案 Nostromo 从nmap的扫描结果可以看到,目标开启了80端口,且…

MATLAB对话框与菜单设计实验

本文MATLAB源码,下载后直接打开运行即可[点击跳转下载]-附实验报告https://download.csdn.net/download/Coin_Collecter/88740733 一、实验目的 1.掌握建立控件对象的方法。 2.掌握对话框设计方法。 3.掌握菜单设计方法。 二、实验内容 建立如下图所示的菜单。菜单…

基于鸿蒙HarmonyOS 元服务开发一款公司运营应用(ArkTS API 9)

前言 最近基于Harmony OS最新版本开发了一个作品,本文来详细讲解一下,如何我是如何开发这个作品的。以及如何使用OpenHarmony,基于ArkTS,API 9来开发一个属于自己的元服务。 废话不多说,我的作品名称叫做Company Oper…

如何通过Burp Suite专业版构建CSRF PoC

Burp Suite是一款强大的渗透测试利器&#xff0c;可以利用它来高效的执行渗透攻击&#xff0c;接下来介绍如何通过Burp Suite Pro来构建CSRF PoC。 在Bupr中找到拦截的请求&#xff0c;右键选择Engagement tools > Generate CSRF PoC 利用CSRF PoC生成器自动生成HTML <h…

2.2 物理层

2.2 物理层 2.2.1 物理层的基本概念 1、物理层主要解决在各种传输媒体上传输比特0和1的问题&#xff0c;进而给数据链路层提供透明传输比特流的服务 2、由于传输媒体的种类太多&#xff08;例如同轴电缆、光纤、无线电波等&#xff09;&#xff0c;物理连接方式也有很多例如…

K8S--Ingress的作用

原文网址&#xff1a;K8S--Ingress的作用-CSDN博客 简介 本文介绍K8S的Ingress的作用。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题&#xff0c;吊打面试官&#xff1a; Java后端真实面试题…

redis数据结构源码分析——跳表zset

文章目录 跳表的基本思想特点节点与结构跳跃表节点zskiplistNode属性 跳跃表链表属性 跳表的设计思想和优势API解析zslCreate&#xff08;创建跳跃表&#xff09;zslCreateNode&#xff08;创建节点&#xff09;zslGetRank&#xff08;查找排位&#xff09;zslDelete&#xff0…