GUI编程--1
GUI编程--1
- GUI是什么 (Graphical User Interface),即用户图形界面编程。
- 怎么玩
- 平时怎么运用
组件
- 窗口
- 弹窗
- 面板
- 文本框
- 列表框
- 按钮
- 图片
- 监听事件
1.简介
GUI技术的核心:Swing AWT,因为界面不美观,需要jre环境! 所以不流行。
为啥要学习?
- 写出一些想要的小工具。
- 工作时候,可能需要维护到swing界面,很低概率。
- 了解MVC架构,了解监听。
2.AWT
AWT(Abstract Window Toolkit),中文译为抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
2.1 AWT介绍
- 包含了很多类和接口!GUI
- 元素、窗口、按钮、文本框
- java.awt包
组件(component):
1. button(按钮)、TextArea(文本框)、Label(标签)....
1. 容器(Container):1中的需要放到里面
2.1. Window(窗口) : Frame(框架)、Dialog(弹窗)
2.2. Panel(面板):Applet(小程序)
2.2 窗口--Frame框架
1.第一个frame窗口
package com.ssl.lesson01;
import java.awt.*;
//GUI的第一个界面
public class TestFrame {
public static void main(String[] args) {
//Frame
Frame frame = new Frame("我的第一个java图形界面");
//设置可见性
frame.setVisible(true);
//设置窗口大小
frame.setSize(400,400);
//设置背景颜色
frame.setBackground(new Color(22, 222, 93));
//弹出的初始位置
frame.setLocation(400,400);
//设置大小固定
frame.setResizable(false);
}
}
问题:发现窗口关闭不掉!!
2.生成多个窗口
package com.ssl.lesson01;
import com.sun.beans.editors.ColorEditor;
import java.awt.*;
public class TestFrame2 {
public static void main(String[] args) {
new MyFrame(0,400,400,400,Color.red);
new MyFrame(400,400,400,400,Color.blue);
new MyFrame(800,400,400,400,Color.green);
new MyFrame(1200,400,400,400,Color.orange);
}
}
//利用继承写自己的方法。
class MyFrame extends Frame{
//可能存在多个窗口,我们需要一个计数器
static int id = 0;
public MyFrame(int x,int y,int w,int h,Color color){
super("myFrame"+(++id));
setBounds(x,y,w,h);
//setLocation(x,y);
//setSize(w,h);
setVisible(true);
setBackground(color);
setResizable(false);
}
}
2.3 窗口--面板Panel
面板需要添加到frame中,其中解决了窗口关闭的事件监听。
package com.ssl.lesson01;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//import java.awt.event.WindowListener;
//Panel 可以看成是一个空间,但是不能单独存在
public class TestPanel {
public static void main(String[] args) {
Frame frame = new Frame();
//布局的概念
Panel panel = new Panel();
//设置布局
frame.setLayout(null);
//坐标
frame.setBounds(300,300,500,500);
//设置颜色
frame.setBackground(new Color(13, 234, 92));
//panel 设置坐标 相对于frame
panel.setBounds(50,50,400,400);
//panel 设置颜色
panel.setBackground(Color.red);
//将面板Panel放到frame上
frame.add(panel);
frame.setVisible(true);
//添加监听事件,监听窗口关闭事件,System.exit(0)
//适配器模式
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭时要做的事情。
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
}
}
2.4 三种布局管理器
frame.setLayout(null);
- 流式布局Flow
package com.ssl.lesson01;
import java.awt.*;
public class TestFlowLayout {
public static void main(String[] args) {
Frame frame = new Frame();
//组件-按钮
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
//设置为流式布局
frame.setLayout(new FlowLayout()); //默认为中
//frame.setLayout(new FlowLayout(FlowLayout.LEFT)); //左
//frame.setLayout(new FlowLayout(FlowLayout.CENTER)); //中
//frame.setLayout(new FlowLayout(FlowLayout.RIGHT)); //右
frame.setSize(800,800);
frame.setVisible(true);
frame.add(button1);
frame.add(button2);
frame.add(button3);
}
}
- 东西南北中布局border
package com.ssl.lesson01;
import java.awt.*;
public class TestBorderLayout {
public static void main(String[] args) {
Frame frame = new Frame();
Button east = new Button("East");
Button west = new Button("West");
Button south = new Button("South");
Button north = new Button("North");
Button center = new Button("center");
frame.add(east,BorderLayout.EAST);
frame.add(west,BorderLayout.WEST);
frame.add(south,BorderLayout.SOUTH);
frame.add(north,BorderLayout.NORTH);
frame.add(center,BorderLayout.CENTER);
frame.setVisible(true);
frame.setSize(800,400);
}
}
- 表格布局Grid
package com.ssl.lesson01;
import java.awt.*;
public class TestGridLayout {
public static void main(String[] args) {
Frame frame = new Frame();
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
Button button4 = new Button("button4");
Button button5 = new Button("button5");
Button button6 = new Button("button6");
frame.setLayout(new GridLayout(3,2));
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.add(button4);
frame.add(button5);
frame.add(button6);
frame.setSize(400,400);
frame.setVisible(true);
}
}
2.5 小练习
package com.ssl.lesson01;
import java.awt.*;
public class TestTest {
public static void main(String[] args) {
Frame frame = new Frame();
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
Button button4 = new Button("button4");
Button button5 = new Button("button5");
Button button6 = new Button("button6");
Button button7 = new Button("button7");
Button button8 = new Button("button8");
Button button9 = new Button("button9");
Button button10 = new Button("button10");
frame.setLayout(new GridLayout(2,3));
Panel panel1 = new Panel();
Panel panel2 = new Panel();
frame.add(button1);
frame.add(panel1);
panel1.setLayout(new GridLayout(2,1));
panel1.add(button2);
panel1.add(button3);
frame.add(button4);
frame.add(button5);
frame.add(panel2);
panel2.setLayout(new GridLayout(2,2));
panel2.add(button6);
panel2.add(button7);
panel2.add(button8);
panel2.add(button9);
frame.add(button10);
frame.setSize(400,400);
frame.setVisible(true);
}
}
总结
- Frame是一个顶级窗口
- Panel无法单独显示,必须添加到某个容器中
- 布局管理器
GUI编程--1的更多相关文章
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- 1.JAVA之GUI编程概述
下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式: ...
- 2.JAVA之GUI编程布局
布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...
- 3.JAVA之GUI编程Frame窗口
创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...
- 4.JAVA之GUI编程事件监听机制
事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...
- 5.JAVA之GUI编程窗体事件
我们回顾下第三篇时的内容: 在3.JAVA之GUI编程Frame窗口中窗体是无法直接关闭的,想要关闭须进程管理器结束进程方式关掉. 现在我们就来解决下这个问题. ******************* ...
- 6.JAVA之GUI编程Action事件
功能:单击一个按钮实现关闭窗口: import java.awt.*; import java.awt.event.*; public class StudyAction { // 定义该图形所需的组 ...
- 7.JAVA之GUI编程鼠标事件
鼠标事件: 功能: 1.基本窗体功能实现 2.鼠标移动监听,当鼠标移动到按钮上时,触发打印事件. 3.按钮活动监听,当按钮活动时,触发打印事件. 4.按钮被单击时触发打印事件. 源码如下: impor ...
- 8.JAVA之GUI编程键盘码查询器
程序使用说明: 1.本程序由于是java代码编写,所以运行需安装jdk并配置好环境变量. 2. 复制java代码到记事本内,另存为Keyboard_events.java: 3.复制批处理代码到记事本 ...
- 9.JAVA之GUI编程列出指定目录内容
代码如下: /*列出指定目录内容*/ import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import ...
随机推荐
- node.js发送短信验证码(附带60秒倒计时插件)
推荐一个简单且功能齐全的发送短信验证码接口1.安装下载后的SDK只包含一个zhenzisms.js文件,直接导入到工程中即可使用.下载 2.用法引入模块 const zhenzismsClient = ...
- vue项目中axios跨域设置
最近项目中遇到一个问题,测试环境和线上环境需要调同一个接口(接口地址是线上的),本地开发的时候遇到了跨域的问题,刚开始用了fetch解决的,代码如下 方法一 step1:安装包node-fetch,然 ...
- js中的call()、apply()、bind()方法
var a= { name:"李四", age: "五岁", text: function() { return this.name+ " " ...
- xmake构建C/C++编译环境
1. xmake介绍 XMake是一个基于Lua的轻量级跨平台自动构建工具,支持在各种主流平台上构建项目 xmake的目标是开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得 ...
- python 创建虚拟环境python –m venv方式
1.环境准备 1.1.刷新包清单 sudo yum update 1.2.安装SCL实用程序 sudo yum install centos-release-scl 1.3.安装Python 3.6 ...
- gimp脚本.scm一些心得记录
gimp的脚本scm一些心得记录 GIMP 2.10 图像处理脚本推荐GIMP使用脚本使得图像处理的功能更加强大,对于一些常见操作可以通过脚本快速实现.GIMP也出来2.10版本了,比前面的2.8相比 ...
- Web_Servlet之间请求转发
Servlet2 @WebServlet(urlPatterns = "/aa") public class JspService extends HttpServlet { pr ...
- mysql数据库随笔
number(p,s):数值型,包括小数点前后的位数Integer:整数vachar2:字符串nvachar2:国际化使用字符串char:data:日期timestamp:时间戳BLOB:放大数据 事 ...
- SQL Server 启用“锁定内存页”
这次在虚拟机中做了一个模拟器做压力测试,简单模拟了一条20个工位的生产线上生产1000个工件,并向 MES 服务端发起功能请求,保存质量数据和扫码数据到数据库.在测试时发现服务端进程的 CPU 占用有 ...
- 实验2 C语言分支语句、循环语句应用编程
一.实验目的 掌握格式化输出函数printf()和格式化输入函数scanf()的用法 掌握单个字符输出函数putchar()和单个字符输入函数getchar()的用法 理解结构化程序设计的三种基本结构 ...