1.简介
1.GUI是什么–简介
GUI的全称为Graphical User Interface,图形化界面或图形用户接口,是指采用图形方式显示的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。
2.GUI是什么–组成
图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。GUI的组成部分主要分为以下几部分:
桌面—在启动时显示,也是界面中最底层,有时也指代包括窗口、文件浏览器在内的“桌面环境”。一般的界面中,桌面上放有各种应用程序和数据的图标,用户可以依此开始工作。
视窗—应用程序为使用数据而在图形用户界面中设置的基本单元。应用程序和数据在窗口内实现一体化。在窗口中,用户可以在窗口中操作应用程序,进行数据的管理、生成和编辑。
单一文件界面—在窗口中,一个数据在一个窗口内完成的方式。若要在其他应用程序的窗口使用数据,将相应生成新的窗口。因此窗口数量多,管理复杂。
多文件界面—在一个窗口之内进行多个数据管理的方式。这种情况下,窗口的管理简单化,但是操作变为双重管理。
标签—多文件界面的数据管理方式中使用的一种界面,将数据的标题在窗口中并排,通过选择标签标题显示必要的数据,这样使得接入数据方式变得更为便捷。
菜单—将系统可以执行的命令以阶层的方式显示出来的一个界面。一般置于画面的最上方或者最下方,应用程序能使用的所有命令几乎全部都能放入。重要程度一般是从左到右,越往右重要度越低。
按钮—菜单中,利用程度高的命令用图形表示出来,配置在应用程序中,成为按钮。
3.GUI是什么–实现方法
针对特定的图形设备输出接口,自行开发相关的功能函数。购买针对特定嵌入式系统的图形中间软件包。采用源码开放的嵌入式GUI系统。使用独立软件开发商提供的嵌入式GUI产品。
实现GUI界面的准则主要包括:减少用户的认知负担、保持界面的一致性、满足不同目标用户的创意需求、用户界面友好性、图标识别平衡性、图标功能的一致性、建立界面与用户的互动交流等。
4.GUI是什么–用途
GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。主要用于手机通讯移动产品、电脑操作平台、软件产品、PDA产品、数码产品、车载系统产品、智能家电产品、游戏产品、产品的在线推广等领域
GUI的核心技术:Swing,AWT
需要jre环境
学习目的:写出一些合适的小工具
2.AWT
1.new 类!
2.包含了很多类和接口!
3.用于GUI编程图像用户界面
(1)容器Container
(2)组件Component
Frame
创建一个窗口
package frame;
import java.awt.*;
public class teatframe {
public static void main(String[] args){
//Frame
Frame frame = new Frame("java界面");
//设置可见性
frame.setVisible(true);
//设置窗口大小
frame.setSize(500,500);
//设置窗口背景颜色 Color
frame.setBackground(new Color(103, 43, 122));
//弹出的初始位置
frame.setLocation(100,100);
//设置大小固定setResizable默认位true 也就是可以改变窗口大小
frame.setResizable(false);
}
}
多窗口
package frame;
import java.awt.*;
public class testframe2 {
public static void main(String[] args) {
//展示多个窗口
MyFrame myFrame1 = new MyFrame(100, 100, 200, 200, Color.black);
MyFrame myFrame2 = new MyFrame(300, 100, 200, 200, Color.green);
MyFrame myFrame3 = new MyFrame(100, 300, 200, 200, Color.red);
MyFrame myFrame4 = new MyFrame(300, 300, 200, 200, Color.gray);
MyFrame myFrame5 = new MyFrame(100, 500, 200, 200, Color.orange);
MyFrame myFrame6 = new MyFrame(300, 500, 200, 200, Color.white);
}
}
class MyFrame extends Frame {
static int id = 0;//可能存在多个窗口,我们需要一个计数器
public MyFrame(int x, int y, int w, int h, Color color) {
super("MyFrame+" + (++id));
setBackground(color);
setBounds(x, y, w, h);
setVisible(true);
}
}
2.面板
解决窗口无法关闭的情况
package frame;
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();
Panel panel2 = new Panel();
//设置布局
frame.setLayout(null);
//坐标
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(181, 105, 232, 255));
//panel 设置坐标 相对于frame
panel.setBounds(10,10,100,100);
panel.setBackground(new Color(44, 75, 232, 255));
panel2.setBounds(110,100,300,400);
panel2.setBackground(new Color(11, 217, 116, 255));
//frame.add(panel)添加图像
frame.add(panel);
frame.add(panel2);
frame.setVisible(true);
//设置可见性
//监听事件,监听窗口关闭事件 System.exit(0)
//适配器模式
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭的时候需要做的事情
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
}
}