GUI初阶:基本知识框架(案例:加法计算器)
GUI编程初级基本知识框架,(案例:加法计算器)
一、简介:
1、组件:窗口、弹窗、面板、文本框、列表框、按钮、图片、监听事件、鼠标、键盘事件、破解工具
2、特点:界面不美观,运行需要jre环境
3、作用:可以写小工具,了解mvc架构,了解监听
二、注意的事项
1、布局管理器三种
frame.setLayout(new BorderLayout()); //默认布局管理器,将不指定位置的组件默认放到中间,可能产生重叠。
frame.setLayout(new FlowLayout()); //流式布局管理器,按顺序将组件排列,可设置东西南北中,组件会随着窗口大小发生位置的变化。
frame.setLayout(new GridLayout(3,3)); //表格布局管理器,划分区域较为有序的放置组件。
2、Frame常用方法
setSize(400, 400);//设置窗口大小
setBackground(new Color(255, 225, 255));//设置背景和颜色
setLocation(400, 400);//设置初始化位置
setVisible(true);//设置可见性
setBounds(x,y,h,w)初始化位置和大小,可同时实现setSize和Location。
三、一般组件书写框架:
//启动按钮 new 窗口子类().方法()
public class calc {public static void main(String[] args) {new Calculator().loadFrame();}
}//1、建立需要的窗口类
class 窗口类名 extends Frame{//2、定义文本框属性TextField 文本框名;//3、窗口建立方法
public void loadFrame{//4、文本框建立文本框名 = new TxetField(可输入字数限制);//5、按钮建立Button button = new Button();//6、标签建立Label label = new Label();//7、面板的建立Panel panel = new Panel();panel.setBackground(new Color(233, 233, 60));//8、布局设置 setLayout(new FlowLayout());setBounds(400,400,800,400);panel.setBounds(400,400,400,200);setVisible(true);//9、组件添加add(button);add(panel);add(文本框名);add(label);//10、事件添加button.addActionListener(new Action());textField.addActionListener(action2);//12、添加窗口关闭方法addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});//11、事件设置(内部类)class Action implements ActionListener{public void actionPerformed(ActionEvent e) {执行语句常用文本框.getText/文本框.setText}}}
}
简易加法计算器源代码:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class calc {public static void main(String[] args) {new Calculator().loadFrame();}
}
//计算器类
class Calculator extends Frame{//声明文本框属性TextField textField1,textField2,textField3;//计算机窗口建立的方法public void loadFrame(){//文本框建立textField1 = new TextField(10);//字符数限制textField2 = new TextField(10);textField3 = new TextField(20);//按钮建立Button button = new Button("=");//标签建立Label label = new Label("+");//布局设置setLayout(new FlowLayout());setBounds(400,400,800,400);setVisible(true);//组件添加add(textField1);add(label);add(textField2);add(button);add(textField3);//事件添加button.addActionListener(new Action());//窗口关闭,结束程序addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}//监听事件建立(内部类)class Action implements ActionListener{public void actionPerformed(ActionEvent e) {//获得加数和被加数int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());//初始化设置textField3.setText(""+(num1+num2));textField1.setText("");textField2.setText("");}}
}
GUI初阶:基本知识框架(案例:加法计算器)相关推荐
- 【初阶】unity3d官方案例_太空射击SpacingShooter 学习笔记 显示分数时,如何让函数之间相互交流...
[初阶]unity3d官方案例_太空射击SpacingShooter 学习笔记 显示分数时,如何让函数之间相互交流 一.关于 显示分数时,如何让函数之间相互交流 这是一个非常好的逻辑问题 1 思路:主 ...
- C++ --函数模板初阶的知识总结
一,泛型编程 编写与类型无关的通用代码,是代码复用的一种手段,模板是泛型编程的基础. 二,函数重载和函数模板的关联 函数重载:定义函数名相同而形参列表(形参个数或形参类别)不同的多个函数.. 函数模板 ...
- C语言初阶_初识C语言(1)
凡是过往,皆为序章 期末考试结束了,真是感慨良多啊...... C语言编程题大家都做对了多少呢? 不管怎么样,都已经过去了.不管你学得怎么样,都可以在接下来的时间里,我们一起重新回顾一遍C语言初阶的知 ...
- 快来学selenium初阶到高阶的使用,反爬的案例解析,google驱动的安装配置
文章目录 Google驱动的安装和selenium自动化的使用 一.Google驱动的安装 二.selenium自动化的初体验 三.selenium元素的定位操作 四.selenium页面交互方法 五 ...
- 【RPC框架、RPC框架必会的基本知识、手写一个RPC框架案例、优秀的RPC框架Dubbo、Dubbo和SpringCloud框架比较】
一.RPC框架必会的基本知识 1.1 什么是RPC? RPC(Remote Procedure Call --远程过程调用),它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络的技术. ...
- 前端三剑客之 HTML - JavaEE初阶 - 细节狂魔
文章目录 前言 后端 && 前端的部分历史 - java 关于网站搭建 正文开始! HTML 怎么编写一个HTML的代码? 小拓展: 快速编写 HTML 代码的小技巧 浏览器的开发者工 ...
- 学习笔记:C++初阶【C++入门、类和对象、C/C++内存管理、模板初阶、STL简介、string、vector、list、stack、queueu、模板进阶、C++的IO流】
文章目录 前言 一.C++入门 1. C++关键字 2.命名空间 2.1 C语言缺点之一,没办法很好地解决命名冲突问题 2.2 C++提出了一个新语法--命名空间 2.2.1 命名空间概念 2.2.2 ...
- 牛津初阶字典精华总结
本总结主要针对人群为能力在CET4.6一般上下读者.因Time is invaluable,如你是英语专业8以上或大学四级以下者,也许该套总结层次不适合你.该总结从初阶字典里吸取了鄙人自认为精华相应部 ...
- 【C语言】指针Pointer初阶(1)
目录 1.指针定义 2.野指针 3.指针运算 3.1指针+/-整数 //利用指针自增自减访问数组 3.2指针相减 //利用指针相减求字符串长度 3.3指针的关系运算 //利用指针比较将数组arr中的元 ...
最新文章
- 2道面试题:输入URL按回车HTTP2
- 直接拖动元器件_电子元器件常规检测和判断
- python的回溯信息_基于Python的回溯算法
- oracle 把逗号分隔符,将逗号分隔为Oracle中的列
- Codeforces Round #294 (Div. 2)
- unix 只有root 可以使用chown吗_chmod 777 是开发的常规操作吗?
- 国内四家物联网实时操作系统浅析
- 温升测试总结setllom解胶剂
- mysql数据库BigInt数据类型和实体对象中BigInteger,Long类型的冲突
- php mysql上机题_PHP+mysql真题
- win10系统装服务器2008蓝屏,win10专业版系统出现蓝屏的原因及解决方法
- labview信号频域分析算法
- Android P使用pm install安装apk报错
- 个税革新,你每年能省多少钱~
- gammatone 滤波器详解及其MATLAB代码实现
- unity光圈旋转效果
- 服务器遇到一个意外的情况,阻止它完成请求
- 记录Google被和谐的日子
- 观念决定态度,态度决定一切
- 优酷土豆合而不同 土豆逐渐边缘化显尴尬