GUI编程--1

  • GUI是什么 (Graphical User Interface),即用户图形界面编程。
  • 怎么玩
  • 平时怎么运用

组件

  • 窗口
  • 弹窗
  • 面板
  • 文本框
  • 列表框
  • 按钮
  • 图片
  • 监听事件

1.简介

GUI技术的核心:Swing AWT,因为界面不美观,需要jre环境! 所以不流行。

为啥要学习?

  1. 写出一些想要的小工具。
  2. 工作时候,可能需要维护到swing界面,很低概率。
  3. 了解MVC架构,了解监听。

2.AWT

​ AWT(Abstract Window Toolkit),中文译为抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的图形用户界面的基本工具。

2.1 AWT介绍

  1. 包含了很多类和接口!GUI
  2. 元素、窗口、按钮、文本框
  3. 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); }
}

总结

  1. Frame是一个顶级窗口
  2. Panel无法单独显示,必须添加到某个容器中
  3. 布局管理器

GUI编程--1的更多相关文章

  1. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  2. 1.JAVA之GUI编程概述

          下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式:                             ...

  3. 2.JAVA之GUI编程布局

    布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...

  4. 3.JAVA之GUI编程Frame窗口

    创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...

  5. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

  6. 5.JAVA之GUI编程窗体事件

    我们回顾下第三篇时的内容: 在3.JAVA之GUI编程Frame窗口中窗体是无法直接关闭的,想要关闭须进程管理器结束进程方式关掉. 现在我们就来解决下这个问题. ******************* ...

  7. 6.JAVA之GUI编程Action事件

    功能:单击一个按钮实现关闭窗口: import java.awt.*; import java.awt.event.*; public class StudyAction { // 定义该图形所需的组 ...

  8. 7.JAVA之GUI编程鼠标事件

    鼠标事件: 功能: 1.基本窗体功能实现 2.鼠标移动监听,当鼠标移动到按钮上时,触发打印事件. 3.按钮活动监听,当按钮活动时,触发打印事件. 4.按钮被单击时触发打印事件. 源码如下: impor ...

  9. 8.JAVA之GUI编程键盘码查询器

    程序使用说明: 1.本程序由于是java代码编写,所以运行需安装jdk并配置好环境变量. 2. 复制java代码到记事本内,另存为Keyboard_events.java: 3.复制批处理代码到记事本 ...

  10. 9.JAVA之GUI编程列出指定目录内容

    代码如下: /*列出指定目录内容*/ import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import ...

随机推荐

  1. 命令提示符怎么打开和Dos命令的基本使用

    Dos命令 Dos命令窗口我们可以通过win+R输入cmd来打开 如果要用管理员身份打开直接在开始里搜索命令提示符,以管理员身份打开! 一些简单的Dos命令 //切换盘符 盘符名: //进入 cd / ...

  2. <三>JMeter逻辑控制器简介

    一.添加HTTP请求线程 1.运行jmeter.bat进入jmeter界面 2.修改语言为简体中文 3.右键测试计划添加一个线程组 4.右键线程组添加一个HTTP请求 5.填写HTTP请求服务名称和路 ...

  3. 25 bootstrap--v3--datetimepicker时间选择器--应用

    在模板中引用响应的文件 比如: layout.html <link rel="stylesheet" href="{% static 'stark/plugins/ ...

  4. php相关知识总结

    class Father{ public static function getStatic(){ return new static(); } public static function getS ...

  5. C#textbox控件区分扫码枪输入和键盘输入

    前言: 一般我们在某个UI界面输入内容的时候又不想人为的去键盘输入,这个时候就需要区分键盘输入和扫码枪的输入,从而禁止人为键盘输入内容,只能使用扫码枪扫码输入.就目前来说这种直插式扫码枪输入和键盘输入 ...

  6. Java知识体系深度理解

    1 post请求和get请求异同点 ①无论是POST还是GET请求,都是基于超文本传输协议(HTTP)的,而HTTP协议是TCP/IP协议族的应用层协议. HTTP的底层是TCP/IP.所以GET和P ...

  7. 格式化 ceph osd 盘报错stderr: wipefs: error: /dev/sdc: probing initialization failed: Device or resource busy

    1.格式化 ceph集群osd盘 出现设备繁忙,只能手动清空磁盘并重启 格式化:ceph-volume lvm zap /dev/sdc dd 手动清空磁盘:dd if=/dev/zero of=/d ...

  8. C语言初级阶段8——预处理

    C语言初级阶段8--预处理 预定义符号 1.概念:预处理是编译之前做的一些事. 2.常用的预定义符号: 注意:: (1)-(4)的格式占位符都用%是,如:printf("%s",D ...

  9. Linux下 Jdk版本切换

    安装: 甲骨文官网下jdk 上传到云服务器 解压: tar -zxvf jdk-7u79-linux-x64.tar.gz 设置环境变量 vim /etc/profile 末尾加上 export JA ...

  10. Float浮动、 CSS定位(position)

    Float浮动. CSS定位(position)1.CSS定位机制(1)普通流(标准流)-默认状态,元素自动从左往右,从上往下的排列(2)浮动-会使元素向左或向右移动,只能左右,不能上下-浮动元素碰到 ...