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

学习 Swing

今天正式在IDEA里开坑Java Swing了。听说Swing能做带窗口的可视化程序,早上新建好 Java 项目、创好类的时候还挺期待,结果一天下来踩了半坑,连带着IDEA的功能都摸明白了好几个。
上午先写最基础的JFrame窗口。照着教程用psvm快捷键敲完主方法,三五行代码创建窗口对象、设标题、设尺寸,信心满满点右上角绿色三角运行 —— 结果等了半天,啥窗口都没弹出来,IDEA 控制台也没报错,进程就安安静静挂着。
我盯着代码翻来覆去看了十分钟,还以为是IDEA抽风,重启了一次项目都没用。后来对着教程逐行比对,才发现漏了一行setVisible(true)——原来Swing窗口默认是隐藏的,不手动设置显示,代码语法全对也白搭。改完再点运行,终于弹出一个灰扑扑的空窗口,我盯着那个小窗口看了好半天,还特意拖动了两下,确认是自己写出来的,居然有点小激动。
高兴没两分钟,又发现不对劲:点窗口右上角的叉号关掉,IDEA 里的运行按钮还亮着红色,进程根本没退出,每次都得手动点停止。查了半天才搞明白,还要加一句setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),不然默认只是把窗口藏起来,程序还在后台跑。就这么一个空窗口,前前后后改了四五次,亏得 IDEA 里ctrl+z撤销方便,不然光删代码都要删半天。
下午学布局管理器,这玩意儿直接给我整破防了。一开始嫌麻烦不想学布局,直接用setBounds()写死坐标放按钮和标签,IDEA 还特意给这行代码标了浅灰色提示,说不推荐绝对布局,我当时没当回事。结果运行起来一把窗口拉大,所有组件全钉在原地不动,空出来一大片灰底,丑得没法看。
没办法只能老老实实学布局管理器,在 IDEA 里改一行运行一次,来回试了快两个小时:
FlowLayout最省事,组件自动排成一排,满了就换行,但是窗口一拉大,按钮全飘在中间,特别别扭;
BorderLayout分东南西北中五个区,第一次把按钮放 CENTER 区,运行之后按钮直接铺满整个窗口,给我吓一跳;
最后试 GridLayout,按行列排组件,写了个计算器的按钮面板,总算像点样子。
中间还闹了个笑话:写按钮的时候手滑导入了java.awt.Button,不是 Swing 的JButton,IDEA 立刻标了红,我对着报错看了五分钟都没明白哪里错了,最后按alt+enter自动修正导包,才发现是类导错了。
晚上最头疼的是事件监听。学按钮点击事件的时候,教程写匿名内部类,new ActionListener(){ 重写actionPerformed方法 },一堆大括号套在一起,我看着都晕。好在 IDEA 会自动补全方法体,打完匿名类直接回车,自动帮我生成actionPerformed的方法框架,不然光方法名我都可能拼错。
第一次写成功的时候,只是点一下按钮,控制台打印一行 “点击了登录”,还觉得没什么意思。后来试着改成点击按钮修改 JLabel 的文字,运行之后点一下按钮,界面上的字真的变了 —— 那一下突然就有实感了,这不是只能看的界面,是真的能交互的程序。
临睡前凑了个简易登录窗口,放了用户名、密码两个输入框,还有登录和重置两个按钮。点登录用JOptionPane弹提示框,这个方法的重载太多了,IDEA 弹了一堆参数提示,我选了半天才选对,一开始还把标题和消息的参数写反了,弹出来的对话框奇奇怪怪的。虽然代码写得歪歪扭扭,但是运行起来的那一刻,真的比做十道控制台算法题都有成就感。
今天一天学下来,心得主要有三个:
第一,Swing 的组件真的太多了,JFrame、JPanel、JButton、JLabel、JTextField…… 光常用的就十几个,离了 IDEA 的代码补全我根本记不住全拼,但是也不能全依赖补全,不然关了提示啥也写不出来;
第二,IDEA的波浪线提示和alt+enter真的是新手神器,小到导包、大到方法补全,大部分报错按一下都能自动修好,比自己瞎找效率高太多;
第三,绝对不能只看教程不动手。好多知识点看的时候觉得 “就这?很简单”,真自己在 IDEA 里敲代码,不是漏了方法就是参数写错,好多坑只有自己踩过、看着 IDEA 报过错,才记得住。
布局和事件监听应该是接下来的重点,一个管界面长什么样,一个管界面能干嘛。明天打算在 IDEA 里接着做个带菜单栏的简易记事本,再加个文本域,慢慢磨。原来写 GUI 虽然麻烦,但是看着自己写的代码变成一个能点能用的小窗口,还真挺有意思的。

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

相关文章:

  • ArcGIS叠加分析三剑客:用擦除、裁剪、相交搞定你的空间数据处理(附避坑指南)
  • PowerQUICC II通信处理器实战:从双引擎架构到多协议处理
  • 从Word2Vec到BERT:聊聊这些年我们用过的‘词向量’,以及怎么选才不踩坑
  • *题解:P6442 [COCI 2011/2012 #6] KOŠARE
  • 终极指南:如何使用WuMgr完全掌控Windows系统更新
  • 5分钟快速解决TranslucentTB的VCLibs缺失问题:Windows任务栏透明美化终极指南
  • 如何用MAA智能助手解放你的《明日方舟》日常:5个核心功能详解
  • 如何快速掌握LibreDWG:免费DWG文件转换的终极指南
  • AMD Ryzen系统调试工具SMUDebugTool深度解密:硬件级精准控制技术实现
  • Anaconda3安装路径选C盘还是D盘?实测不同盘符对性能和包管理的影响
  • 除了Confluence和语雀,企业知识库还有第三种选择
  • 2026北京企业法律顾问避坑指南:5家靠谱专业机构推荐 - 本地品牌推荐
  • 微信聊天记录永久备份终极指南:WeChatExporter开源工具深度解析
  • 虚拟测绘实战:用SF600+RTK手簿完成一次完整的无人机倾斜摄影建模前期工作
  • 2026广州电商财税合规公司排行:标杆服务能力实测对比 - 互联网科技品牌测评
  • aitextgen:GPT-2 快速部署与轻量微调实战指南
  • 告别重复操作!StarRailCopilot让你轻松玩转《崩坏:星穹铁道》
  • 2026广州电商财税合规公司名录:3家标杆服务商解析 - 互联网科技品牌测评
  • 3分钟免费解锁IDM完整版:开源激活脚本终极指南
  • PotatoNV深度实战:华为麒麟设备Bootloader解锁完全解决方案
  • 3分钟快速上手:终极中文文献管理插件Jasminum完全指南
  • Rust 在 Windows 下选 MSVC 还是 MinGW?一个选择帮你避开 90% 的编译坑
  • 2026人力资源全链条咨询机构评测:从战略解码到国企改革的一体化解决方案 - 互联网科技品牌测评
  • 终极LRC歌词批量下载工具:10分钟搞定数千首离线音乐歌词同步
  • 大模型全套核心技术汇总(大白话比喻版,承接前文蒸馏轻量化博客)
  • 从登录到调用:手把手用Flask和JWT实现一个完整的API鉴权流程(附代码)
  • CANN AMCT量化压缩工具包深度技术解析:PTQ量化算法与昇腾NPU低比特运算的精度-性能权衡全景解读
  • 从DCNv1到v3:手把手带你用PyTorch复现可变形卷积的演进(含调参避坑指南)
  • Transformer凭啥取代RNN?从哈工大NLP期末考题,拆解自注意力机制的实战优势
  • 2026年6月南京热风循环烘箱厂家:合规性与适配性实测对比 - 奔跑123