当前位置: 首页 > news >正文

[笔记] 使用 Java Swing 实现一个简单的窗口

Java Swing 是一个用于构建图形用户界面(GUI)的Java库,它提供了丰富的组件和工具,用于创建交互式的桌面应用程序。Swing 是 Java Foundation Classes(JFC)的一部分,它是 Java 平台的一种标准用户界面工具包。

Swing 提供了丰富的组件,包括按钮、标签、文本框、列表、表格等,以及布局管理器和事件处理机制等工具,使开发人员能够轻松创建复杂的用户界面。Swing 还支持可定制的外观和主题,开发人员可以根据需要自定义界面的外观和风格。

随着 Java 平台的发展,Swing 成为了 Java 桌面应用程序开发的主要选择。它在业界得到了广泛应用,并成为了许多商业和开源项目的基础。虽然近年来,JavaFX 和其他现代的 GUI 框架也出现了,但 Swing 仍然是许多现有 Java 桌面应用程序的重要组成部分,并且仍然得到一定程度的支持和维护。

以下为一个简单的 Java Swing UI 窗口:

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class SimpleUI {public static void main(String[] args) {// 创建顶层容器 JFrameJFrame frame = new JFrame("简单UI示例");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭操作// 创建面板 JPanelJPanel panel = new JPanel();panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); // 设置面板布局为垂直方向// 创建标签 JLabelJLabel label = new JLabel("请输入姓名:");Font font = new Font(label.getFont().getName(), Font.PLAIN, 32);label.setFont(font);panel.add(label); // 将标签添加到面板// 创建文本框 JTextFieldJTextField textField = new JTextField(10); // 指定文本框的列数panel.add(textField); // 将文本框添加到面板// 添加垂直间距panel.add(Box.createVerticalStrut(10));// 创建按钮 JButtonJButton button = new JButton("点击我");button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String name = textField.getText(); // 获取文本框的内容label.setText("你好," + name + "!");}});button.setFont(font);panel.add(button); // 将按钮添加到面板// 将面板添加到顶层容器frame.getContentPane().add(panel);// 设置顶层容器大小frame.setSize(800, 600);// 将窗口定位在屏幕的中央位置frame.setLocationRelativeTo(null);// 设置顶层容器可见frame.setVisible(true);}
}

运行后展示效果如下:
在这里插入图片描述

参考资料

  • 菜鸟教程-Java Swing
  • Swing简介:Swing是什么

相关文章:

[笔记] 使用 Java Swing 实现一个简单的窗口

Java Swing 是一个用于构建图形用户界面(GUI)的Java库,它提供了丰富的组件和工具,用于创建交互式的桌面应用程序。Swing 是 Java Foundation Classes(JFC)的一部分,它是 Java 平台的一种标准用户…...

2024.03.03蓝桥云课笔记——排序

sort简介 #include<algorithm> 使用的是快速排序 时间复杂度为O(nlogn) sort使用(默认是从小到大) 1.sort(起始地址&#xff0c;结束地址的下一位&#xff0c;*比较函数&#xff09;&#xff1b; #include<iostream> #include<algorithm> using namesp…...

Vue3和ElementPlus封装table组件

最近学习vue3.2并自己在写一个项目&#xff0c;然后发现好几个页面都是列表页&#xff0c;重复写table和column也是觉得累&#xff0c;学习的项目列表页不算多&#xff0c;要是公司项目就不一样了&#xff0c;所以就想着自己封装一个table组件&#xff0c;免去大量重复工作和co…...

第一篇:参考资料地址

javaGuide JavaGuide&#xff08;Java学习&面试指南&#xff09; | JavaGuide 清华学生总结的 小林coding labuladong labuladong 的算法笔记 | labuladong 的算法笔记 【华仔说技术】kafka的系列文章 https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg3MTcxMDgxNA…...

wordpress 开源主题

海外就医wordpress主题 出国看病、海外就医是越来越多中产家庭的选择&#xff0c;此wordpress主题适合做相关业务的公司官网。 https://www.jianzhanpress.com/?p5220 防护wordpress外贸主题 个人防护器具wordpress外贸主题&#xff0c;适合做劳动保护的外贸公司使用。 ht…...

【Linux网络命令系列】ping curl telnet三剑客

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

于月仙主动与赵本山握手表示欢迎,赵:怎么着要跟我第二次牵手啊?

于月仙主动与赵本山握手表示欢迎&#xff0c;赵&#xff1a;怎么着要跟我第二次牵手啊&#xff1f; --小品《乡村爱情》&#xff08;中1&#xff09;的台词 表演者&#xff1a;赵本山 于月仙 王小利 唐鉴军等 &#xff08;接上&#xff09; 咱们呢就给新人揭盖头 好 好长贵…...

Unity UGUI之Slider基本了解

在Unity中&#xff0c;Slider&#xff08;滑动条&#xff09;是一种常用的用户界面控件之一&#xff0c;允许用户通过拖动滑块来选择一个数值。常常应用于调节数值&#xff08;如调节音量、亮度、游戏难度等&#xff09;、设置选项等。 以下是Slider的基本信息和用法: 1、创建…...

【Linux】进程间通信之共享内存

文章目录 引入共享内存的原理共享内存的相关接口shmget()shmat()shmdt()shmctl() 共享内存的简单使用共享内存的特点 引入 进程间通信&#xff0c;顾名思义就是一个进程和另一个进程之间进行对话&#xff0c;以此完成数据传输、资源共享、通知事件或进程控制等。 众所周知&am…...

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于条件风险价值的虚拟电厂参与能量及备用市场的双层随机优化》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 这篇文章的标题涉及到以下几个关键点…...

前端架构: 脚手架通用框架封装之CommonJS和ESM混合开发兼容解决(教程五)

CommonJS 和 ESModule 混合开发 接上文&#xff0c;仍旧在 abc-cli 项目中参考&#xff1a;https://blog.csdn.net/Tyro_java/article/details/136433159现在要在脚手架项目中安装 chalk 依赖&#xff0c;因为在 abc-cli 项目几乎都是 CommonJS的实现而 chalk 这个依赖源码是基…...

基于主从模式的Reactor的仿muduo网络库

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…...

Linux服务器搭建超简易跳板机连接阿里云服务器

简介 想要规范内部连接阿里云云服务器的方式&#xff0c;但是最近懒病犯了&#xff0c;先搞一个简易式的跳板机过渡一下&#xff0c;顺便在出一个教程&#xff0c;其他以后再说&#xff01; 配置方法 创建密钥 登录阿里云&#xff0c;找到云服务器ECS控制台&#xff0c;点击…...

Windows Server 各版本搭建文件服务器实现共享文件(03~19)

一、Windows Server 2003 打开服务器&#xff0c;点击左下角开始➡管理工具➡管理您的服务器➡添加或删除角色 点击下一步等待测试 勾选自定义配置&#xff0c;点击下一步 选择文件服务器&#xff0c;点击下一步 勾选设置默认磁盘空间&#xff0c;数据自己更改&#xff0c;最…...

ARM总结and复习

安装交叉编译工具链 a. 为什么安装 因为arm公司的指令集在不断迭代升级&#xff0c;指令集日益增多,而架构是基于指令集研发的&#xff0c;所以架构不一样&#xff0c;指令集也不一样 eg:arm架构使用的是arm指令集 x86架构使用的是x86指令集 而我们日常开发环境中linux的架构…...

非功能测试的定义、类型和示例

软件已从推动者转变为不同行业企业成功的核心支柱。因此&#xff0c;非功能测试活动成为人们关注的焦点。然而&#xff0c;许多技术和质量保证专业人员并没有意识到非功能测试的必要性。 他们必须了解什么是非功能测试以及为什么必须鼓励将其作为企业应用程序开发项目的实践。…...

Angular基础---HelloWorld---Day1

文章目录 1. 创建Angular 项目2.对Angular架构的最基本了解3.创建并引用新的组件&#xff08;component&#xff09;4.对Angular架构新的认识&#xff08;多组件&#xff09;5.组件中业务逻辑文件的编辑&#xff08;ts文件&#xff09;6.标签中属性的绑定(1) ID的绑定(2) class…...

k8s部署项目常见的问题及解决方案

在Kubernetes&#xff08;k8s&#xff09;部署项目中&#xff0c;确实存在一些常见问题和挑战。以下是这些问题及其相应的解决方案&#xff1a; 网络插件问题&#xff1a; 问题&#xff1a;网络插件配置不当或版本不兼容可能导致Pod间通信问题。解决方案&#xff1a;重新部署或…...

Redis实现乐观锁+秒杀场景demo

在Redis中&#xff0c;乐观锁通常是通过使用 WATCH、MULTI 、EXEC和DISCARD命令实现的。这种乐观锁机制允许客户端在执行事务期间监视一个或多个键&#xff0c;并且只有在事务执行期间没有其他客户端修改被监视的键时&#xff0c;才会执行事务。 应用场景&#xff1a; 库存控…...

阅读笔记 | Transformers in Time Series: A Survey

阅读论文&#xff1a; Wen, Qingsong, et al. “Transformers in time series: A survey.” arXiv preprint arXiv:2202.07125 (2022). 这篇综述主要对基于Transformer的时序建模方法进行介绍。论文首先简单介绍了Transformer的基本原理&#xff0c;包括位置编码、多头注意力机…...

LVF时序变异分析:原理、应用与EDA工具支持

1. 什么是LVF&#xff08;Liberty Variance Format&#xff09;&#xff1f;在芯片设计领域&#xff0c;时序分析是确保电路性能符合预期的重要环节。Liberty Variance Format&#xff08;LVF&#xff09;是一种用于描述时序变异的新方法&#xff0c;它解决了传统Stage Based O…...

基于流形学习与kNN的稀疏传感风场估计:无人机安全起降新思路

1. 项目概述与核心挑战在无人机城市空中交通&#xff08;UAM&#xff09;和垂直起降场&#xff08;Vertiport&#xff09;的运营中&#xff0c;起降阶段的安全性是重中之重。这个阶段&#xff0c;无人机对风场的变化极为敏感&#xff0c;突如其来的阵风或复杂涡流都可能导致姿态…...

[智能体-41]:智能体识别调用外部工具:原理 + 判定手段 + Python 最简代码示例

一、核心识别逻辑大模型本身无工具调用能力&#xff0c;智能体靠三类判定手段判断是否要调工具&#xff1a;意图语义识别&#xff1a;用户问题超出模型静态知识库&#xff08;实时数据、计算、联网、硬件操作&#xff01;&#xff01;&#xff01;&#xff09;格式规则匹配&…...

你的Linux启动慢?可能是UEFI这七个阶段在“摸鱼”!性能调优实战指南

Linux启动慢&#xff1f;UEFI七阶段性能调优实战指南当你的Linux系统启动速度像蜗牛爬行时&#xff0c;问题可能隐藏在UEFI启动的七个关键阶段中。本文将带你深入UEFI启动流程的每个环节&#xff0c;揭示可能导致延迟的"摸鱼"行为&#xff0c;并提供针对性的优化方案…...

在VirtualBox里跑Win10,远程桌面连不上?试试这个被忽略的虚拟机专用配置

VirtualBox虚拟机Win10远程桌面黑屏&#xff1f;这个隐藏配置项可能是关键在混合开发环境中&#xff0c;许多技术从业者习惯使用VirtualBox等虚拟化工具搭建多操作系统平台。一个常见场景是在Windows 7宿主机上运行Windows 10虚拟机&#xff0c;通过远程桌面进行跨系统操作。但…...

8051单片机PDATA与XDATA存储访问优化解析

1. PDATA与XDATA变量生成的指令解析在8051单片机开发中&#xff0c;外部数据存储器的访问方式直接影响程序效率和硬件设计。作为从业十余年的嵌入式工程师&#xff0c;我经常需要针对不同存储区域优化代码。PDATA和XDATA作为两种常见的外部数据存储模式&#xff0c;其指令生成机…...

别再让auditd拖慢你的麒麟系统!手把手教你排查并关闭这个审计服务

麒麟系统性能优化实战&#xff1a;auditd服务深度排查与替代方案 在麒麟系统的日常运维中&#xff0c;auditd这个默默运行的后台服务常常成为系统性能的"隐形杀手"。许多开发者突然发现系统响应变慢、内存占用飙升时&#xff0c;往往不会第一时间联想到这个看似无害的…...

国曙GOSHINE正式亮相:一家人力资源服务机构的“长期主义”转向!

在人力资源行业&#xff0c;越来越多企业开始意识到&#xff1a;真正困难的&#xff0c;从来不是招聘&#xff0c;而是复杂用工环境下的长期管理。从社保合规到劳动风险&#xff0c;从跨区域用工到组织效率&#xff0c;企业面对的挑战正在不断增加。尤其在劳动密集型行业&#…...

JWT令牌安全实践详解

JWT令牌安全实践详解 一、JWT概述 JSON Web Token&#xff08;JWT&#xff09;是一种用于安全传输信息的开放标准&#xff08;RFC 7519&#xff09;。 1.1 JWT结构 ┌───────────────────────────────────────────────────…...

8个必备的数据采集工具详解,低代码爬虫~

网络爬虫是一种常见的数据采集技术&#xff0c;你可以从网页、 APP上抓取任何想要的公开数据&#xff0c;当然需要在合法前提下。 爬虫使用场景也很多&#xff0c;比如&#xff1a; 搜索引擎机器人爬行网站&#xff0c;分析其内容&#xff0c;然后对其进行排名&#xff0c;比…...