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

我学 Java Swing:给代码穿上衣服

一、Swing 是什么?
Swing 是 Java 用来做图形界面的工具包。
之前我们写的程序都是黑框框(控制台),Swing 可以做出窗口、按钮、输入框这些看得见摸得着的东西。

控制台程序 = 打电话(只能听到声音)
Swing 程序 = 面对面聊天(看到窗口、按钮、图片)

二、第一个 Swing 窗口
下面这段代码,可以弹出一个空白窗口:

java
import javax.swing.JFrame;

public class MyWindow {
public static void main(String[] args) {
JFrame frame = new JFrame("我的第一个窗口");
frame.setSize(400, 300); // 宽400,高300
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 点叉号退出
frame.setVisible(true); // 让窗口显示出来
}
}
运行效果:一个空窗口,标题是“我的第一个窗口”。

三、往窗口里加东西
只显示空窗口太无聊了,我们加一个按钮和一个标签。

java
import javax.swing.;
import java.awt.
;

public class MyFirstGUI {
public static void main(String[] args) {
JFrame frame = new JFrame("Swing 示例");
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// 创建一个面板(可以放组件的容器)
JPanel panel = new JPanel();

// 创建组件
JLabel label = new JLabel("点一下按钮:");
JButton button = new JButton("点我");

// 把组件加到面板上
panel.add(label);
panel.add(button);

// 把面板放到窗口里
frame.add(panel);

frame.setVisible(true);
}
}
运行效果:一个窗口里有一行文字和一个按钮,按钮可以点,但点了还没反应(后面加事件)。

四、让按钮有反应:事件监听
按钮点了要做事,需要给按钮加一个监听器。

java
button.addActionListener(e -> {
label.setText("你点了我!"); // 改变标签的文字
});
完整的代码:

java
import javax.swing.;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ClickDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("按钮事件");
frame.setSize(400, 150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();
JLabel label = new JLabel("还没点");
JButton button = new JButton("点我试试");

// 给按钮添加事件(lambda写法)
button.addActionListener(e -> {
label.setText("你点了我!");
});

panel.add(label);
panel.add(button);
frame.add(panel);
frame.setVisible(true);
}
}
点一下按钮,文字从“还没点”变成“你点了我!”。

五、常用 Swing 组件(一张表)
组件 英文名 作用
窗口 JFrame 最大的框框
面板 JPanel 中间容器,用来放组件
标签 JLabel 显示文字或图片
按钮 JButton 可点击
文本框 JTextField 让用户输入一行文字
密码框 JPasswordField 输入时显示*号
复选框 JCheckBox 打勾/不打勾
单选按钮 JRadioButton 多选一

六、布局管理器(让组件不挤在一起)
组件默认会被布局管理器安排位置。最常用的三种:

布局 特点 代码
FlowLayout 从左到右排,排不下换行 panel.setLayout(new FlowLayout())
BorderLayout 东西南北中五个区域 frame.add(btn, BorderLayout.NORTH)
GridLayout 表格一样均匀排列 panel.setLayout(new GridLayout(2,3))

Swing 不难,就是搭积木:

创建 JFrame 窗口

创建面板 JPanel

创建各种组件(标签、按钮、输入框)

把组件加到面板上

给按钮加事件 addActionListener

最后 setVisible(true)

http://www.jsqmd.com/news/969773/

相关文章:

  • 综合能力实训6.3
  • 企业级CAN数据库转换实战:canmatrix架构设计与工程应用深度解析
  • 基于plc的喷泉控制系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)
  • 生产级 gRPC 服务发现与负载均衡:Go 微服务架构中的选型与落地
  • 镜像视界空间实景精准复刻技术,构建法庭庭审可视化视频孪生系统
  • 终极暗黑2现代化方案:d2dx让你的经典游戏在2024年重获新生
  • TCP/ip详解=IPv6邻居发现
  • Java后端如何用农行OpenBank SDK搞定H5开户?一个真实项目的配置踩坑实录
  • 权威认证:2026 孝感黄金回收 TOP3 资质全、出价高、口碑稳 - GrowthUME
  • 2026丽江目的地婚礼商家推荐榜:异地备婚避坑必看 - 资讯纵览
  • CSDN AI数字营销效果追踪全指南(附可复用的7日归因分析模板)
  • PPTC自恢复保险丝:从原理到实战选型与PCB布局避坑指南
  • 告别手动追番:AutoBangumi 智能追番系统深度解析与实战指南
  • AIGC 内容生成与区块链智能合约集成:从 NFT 铸造到去中心化版权存证
  • 5分钟快速上手:让模糊图片和视频秒变高清的免费AI工具
  • 2026年国内GEO优化厂商大揭秘!盘点国内GEO TOP10震撼来袭 - 资讯纵览
  • OBS背景移除插件终极指南:5分钟实现专业级虚拟背景效果
  • Cursor Pro破解工具:3分钟快速激活高级AI编程功能的完整指南
  • UndertaleModTool终极教程:轻松解包和修改GameMaker游戏的完整指南
  • 终极指南:如何用Python实现智能资金概念(SMC)算法交易策略
  • 《特色升级!艾尚骨汤麻辣烫创新双汤底,骨汤原味+秘制红油兼顾南北游客口味,稳居湘潭游客美食榜单首位》 - 资讯纵览
  • 2026 泰州黄金回收怎么选?三区三市免费上门、七证齐全、30 年老店零套路 - GrowthUME
  • WPF桌面应用开发实操包:含布局控件、数据绑定、动画与3D示例项目
  • 镜像视界区域权限视觉隔离技术,打造司法办公保密型视频孪生平台
  • SJA1000 CAN控制器硬件设计实战:从管脚解析到PCB布局
  • 百万长连接场景下的 goroutine 编排:从扇出模式到连接池治理
  • 重新定义XCOM 2模组体验:AML启动器的5大革新功能
  • 手把手教你用Java SDK对接农行开放平台H5开户(附完整代码与避坑点)
  • EBGaramond12字体:如何免费获得最优雅的经典Garamond字体完整家族
  • 南方科大广外教务系统抢课脚本:Python自动登录+课程提交(含配置说明)