当前位置: 首页 > 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.zskr.cn/news/1481493.html

相关文章:

  • 终极暗黑2现代化方案:d2dx让你的经典游戏在2024年重获新生
  • 2026年国内GEO优化厂商大揭秘!盘点国内GEO TOP10震撼来袭 - 资讯纵览
  • 2026丽江目的地婚礼商家推荐榜:异地备婚避坑必看 - 资讯纵览
  • 终极指南:如何用Python实现智能资金概念(SMC)算法交易策略
  • OBS背景移除插件终极指南:5分钟实现专业级虚拟背景效果
  • 百万长连接场景下的 goroutine 编排:从扇出模式到连接池治理
  • 《特色升级!艾尚骨汤麻辣烫创新双汤底,骨汤原味+秘制红油兼顾南北游客口味,稳居湘潭游客美食榜单首位》 - 资讯纵览
  • 重新定义XCOM 2模组体验:AML启动器的5大革新功能
  • 如何用Tianshou构建你的第一个强化学习智能体:从零到精通的完整指南
  • 【20年IT营销老兵亲测】:CSDN AI工具包能否真提升技术博客转化率?7天小额实战数据全公开
  • 百度地图V1.3离线运行全套资源:API脚本+瓦片数据+可直接打开的演示页
  • Citra模拟器终极指南:如何在PC上免费畅玩3DS游戏
  • 终极桌面整理方案:NoFences开源工具彻底解决Windows桌面杂乱问题
  • 海口钻石回收实测:六大平台横向对比,添价收奢侈品回收30年资质成本地首选 - 薛定谔的梨花猫
  • 2026丽江目的地婚礼商家推荐榜:备婚新人必看的避坑指南 - 资讯纵览
  • 【独家首发】CSDN AI数字营销企业版3档报价体系深度拆解:基础版/专业版/旗舰版含AI模型调用量、API并发数、私有化部署成本等12项核心参数对比
  • 2026年号码品牌认证服务商评测:提升企业来电信任度 - 企业服务推荐
  • 录播姬终极指南:5分钟掌握B站直播录制神器
  • 终极指南:3分钟掌握Windows平台最强NFC卡片管理工具MifareOneTool
  • CSDN AI营销权益顺延到底行不行?3分钟看懂平台TOS更新日志、客服SOP流程图与3种合法申诉路径
  • 信号传输的隐形战场:01 为什么80%的软故障,都不是硬件坏了?
  • 终极免费iOS激活锁绕过方案:applera1n让iPhone 6s-X设备重获新生
  • 2026邢台名表回收如何辨别鉴定水平?赵掌柜二奢参考指南(185-3117-2838) - 资讯纵览
  • CSDN AI数字营销续费政策深度拆解(内部通道曝光:仅限前200名续费用户享阶梯返现)
  • CSDN AI数字营销效果滞后?别怪算法!20年技术传播老兵揭秘:流量提升本质是“人机协同训练周期”
  • 2026年固话号码认证平台排名:高口碑服务商推荐 - 企业服务推荐
  • SRS4.0二次开发避坑指南:手把手教你基于源码添加自定义Hook模块
  • 信号传输的隐形战场:序章.信号传输的隐形战场
  • 从‘A’到‘ÿ’:ASCII码的前世今生与那些被遗忘的控制字符(含实用场景解析)
  • PCB拼版邮票孔设计:从原理到实战的完整指南