笨nanana教你Swing开发入门(亲自码字,通俗易懂,正在完善得更好)
ps:文章还在修订,内容已经可以阅读了,我将尽快把这篇文章完善完毕,先放出来供Swing入门的初学者使用,希望对你有所帮助!截稿的时候,我会在标题注明不再更新。
这篇长文章教大家入门 Java Swing的基础知识,学完之后,你应该可以做出一个简单的游戏程序(比如井字棋,非AI类五子棋),让我们一起加油!
在开始正式的编程之前,请你务必了解Swing开发的基本理论,且既然你能找到这篇文章,也默认你的java基础已经滚瓜烂熟。接下来的学习需要理解能力和记忆能力并用,特别强调对于swing的学习,记忆真的不可少。ps:极力推荐使用IDEAJ IDE,代码补全比“日落”好多了23333
一、主窗口的创建
不管什么GUI程序,如果没了主窗口,一切都是0.
构造方法:
public JFrame()
public JFrame(String name)
如下图:
我们来运行一下…
emmm,什么都看不到,程序就结束了,为什么会这样呢?
这是因为,JFrame构造默认是不可见的,如果我们要看到它,得来调用它的一个函数
public void setVisible(boolean b)
如下图,来运行一下:
好了,我们关了它,点击 X 按钮,然鹅…我们发现,虽然GUI窗口关掉了,但是控制台还没结束。这是因为,JFrame构造时默认 X 执行的是setVisible(false),后台程序还是运行着,只是把GUI隐藏起来罢了2333…如果我们想要在点击 X 时关闭GUI的同时也终止程序的运行,那么我们应该再来调用JFrame的另外一个函数:
public void setDefaultCloseOperation(int operation)
如图:
这里传入的参数是JFrame的静态数据成员。怎么样,现在点击 X 是不是GUI和后台程序都终止了呢?如果没有,请仔细检查一下你的代码!
笔者在这里挖一个坑,能不能从我们刚才讨论的有关 X 操作得到启发,对多窗口的设计有所想法?(所谓多窗口,就是A窗口执行完毕之后,出现B窗口,同时A窗口关闭)想知道?继续往下读。
这时你肯定会注意到了:在我们创建的窗口中,它的图标是“咖啡”图标,包括在任务栏中的图标,也是咖啡。能不能换成我们想要的?当然能,这个时候就就需要调用JFrame的另外一个方法:
public void setIconImage(Image image)
这个时候,我们传进去的应该是一张image,在这里推荐一个网址:阿里的iconfont网站,上面包含了众多程序图标:
网址:IconFont
我们下载一张来试试!
草草写上Image pic = new Image(…还没写完,就报错了
为什么?因为Image是抽象类,不能实例化,那他有哪些子类可供我们现在使用?
The answer is: ImageIcon(String path)
路径存放你应该会了吧,把它放在你的项目根目录下面是最佳的,利用相对路径就可以获取图片了,如果学过《大学计算机》,怎么放,现在应该不懵吧。总之,不懂就百度。
如下图:
当然你也可以写成匿名类:
改下窗口的name,运行结果(先骗过去233333):
此时你也可以发现任务栏中的GUI图标也变成了汉堡
笨nanana教你Swing开发入门(亲自码字,通俗易懂,正在完善得更好)相关推荐
- 初学者必读Android开发入门之路
初学者必读Android开发入门之路 [IT168评论]本人一直致力于嵌入式相关知识和技术在中国大陆地区的技术传播及嵌入式产品及移动设备的系统和应用程序开发,近两年主要专注于3G技术领域,重点是研究A ...
- HealthKit开发快速入门教程之HealthKit开发概述简介
HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为&qu ...
- 教孩子学编程python语言pdf_iOS(iPhone)应用程序开发入门视频教程(35讲)
资源名称:iOS(iPhone)应用程序开发入门视频教程(35讲) 资源目录: [IT教程网]ios(iPhone)应用程序开发入门视频教程:第10讲多视图应用程序 [IT教程网]ios(iPhone ...
- 嵌入式开发入门之经典 ARM开发板
嵌入式开发入门之经典 开始进入嵌入式世界,真是一头雾水,不知道如何入手!也不知道该如何学习,学习什么,最近从网上转载这篇文章,对我启发很大,对于初始进入嵌入式的人们很有帮组,好多嵌入式大侠都说这是入门 ...
- Vue项目构建开发入门
Vue项目构建开发入门 开篇:Vue CLI 3 项目构建基础 大家好,当你点进这个标题,开始阅读本章的时候,说明你对 Vue.js 是充满好奇心和求知欲的.我之前写过一篇文章,这样评价 Vue.js ...
- 初学者福音——10个最佳APP开发入门在线学习网站
根据Payscale的调查显示,现在的APP开发人员的年薪达到:$66,851.这也是为什么那么多初学的开发都想跻身到APP开发这行业的主要原因之一.每当你打开App Store时候,看着琳琅满目的A ...
- zybo的linux开发教程,Zybo全栈开发入门教程——连载三:创建Linux设备驱动和应用程序...
作者:Commanderfranz,编译: kenshin 通过前面两篇文章我们不仅创建的自定义IP模块还移植了Linux操作系统,今天这篇文章的内容是将这两部分联系起来,其实我们创建的myLed I ...
- UWP开发入门教程备忘
UWP-01~03 略~ UWP-04 - 什么是XAML? XAML - 遵循XML语法,XAML实际上是在创建类的实例,并给它们设定属性值,用于定义UI UWP-05 - 类型转换器 类型转换器 ...
- PHPWeb开发入门体验学习笔记
PHPWeb开发入门体验学习笔记 4 一.PHP web应用开发须知 1.入门要点 程序员三个阶段:码农(速成技能)->工程师(长期知识)->专家(研究论文) 编程三要素:声明变量(系统. ...
最新文章
- 弧形背景html,JS实现带圆弧背景渐变效果的导航菜单代码
- android 稳定性测试工具,APP 稳定性测试工具-Fastbot_Android详解
- PostgreSQL索引探究
- Android学习笔记36:使用SQLite方式存储数据
- thinkphp5 内置接口开发与使用
- Facebook为Messenger应用添加群组付款功能
- 面试风云录(01) - 怎样回答这两个问题?
- 标准时间校对_光源色灯箱标准原理
- java 补位_Java 经典问题
- Apache日志不记录图片文件设置方法
- 【洛谷】【treap/堆】P2073 送花
- 【Analytics Kit】【FAQ】集成华为分析服务问题集合 SDK初始化失败/应用调试界面没有数据/常见错误提示
- 网页报表等无法打印提示网页上有错误的解决办法
- 【论文翻译】Recent security challenges in cloud computing 近代云计算面临的安全挑战
- VBA自定义函数TEXTJOIN CONCAT FILTER EVALUATE
- 软件测试——黑盒测试技术
- Spring Integration Kafka
- mysql索引命中查看_MySQL索引无法命中的几种情况及索引验证方法
- 检索有关计算机系统功能设计方面的文献,基于词汇功能识别的科研文献分析系统设计与实现-武汉大学信息检索.PDF...
- android脚本 附近的人,前天微信上有个附近的人加我,我发现她是个脚本
热门文章
- java中talent-aio_talent-aio源码阅读小记(一)
- shell脚本-eval的用法
- python Say Love
- UIKeyboardTypeNumberPad和丢失的return键
- 利用linux命令sort和uniq求两个文件的交集并集和补集
- 爪爪博士:什么是猫艾滋病?猫艾滋病是一种猫免疫缺陷病
- centos7 安装docker 报错 conflicts with file from package
- 全志 H6 芯片分析
- PyQt5第一部分-窗口类:QWidget, QDeskWidget, QTabWidget, QMainWindow, QDialog
- 许愿神器来了 ,30行Python打造了一款许愿墙,希望能追到女神!