GUI学习(一)

1. GUI概念:GUI全称Graphical User Interfaces,意为图形用户户界面,又称为图形用户接口,GUI指的就是采用图形方式显示的计算机操作用户界面,当我们点击PC端微信图标时会弹出一个微信登陆界面的对话框。这个图标就可以被称作图形化的用户界面。


Java主要提供了两个包来做GUI编程:Awt包和Swing包;

  • awt包:主要提供字体和页面布局以及事件处理,主要是Container容器 和 Component组件。

  • Swing包:主要提供各种组件,类似于按钮,文本框…

但是GUI并不是Java语言擅长的东西界面做的不是特别好看,而且程序运行需要在JRE上,可能做了一个几兆的贪吃蛇游戏需要下一个一百多兆的运行环境相信没几个人会这样干吧。现在做GUI的大部分都用QT或者C#。


2. 初识GUI

  1. 我的第一个非黑窗界面,学习Frame类。Frame是窗体类,页面中所有的组件和布局都会包括在这个窗口里,Frame类中主要有下面几个常用的方法。
  • get/setTitle方法:主要用来获取/设置窗口的标题。

  • setResizable(boolean resizable) :传入为true时,这个窗口是可以任意拉伸的。

  • setBackground(Color bgColor) :设置背景颜色,new一个Color类时传入RGB三色值即可。

  • setVisible(boolean flag):设置窗口的可见性,值为true时窗口创建出来就会展示出来。

  • setsize(int w,int h):设置窗口的宽高。

  • setLocation():设置窗口的位置显示器的(0,0)点在左上角,传入的参数是相对左上角的。

  • setBounds(int x,int y,int w,int h):setLocation + setSize方法的结合体。

有了上面的这些方法初步了解就可以写出第一个GUI界面了,编写自己的类继承Frame类构造出五个窗口,但是这些窗口只能缩放不能关闭因为没写监听事件。

import java.awt.*;

class TestFrame extends Frame{

    static int id = 0;

    public TestFrame(int x,int y,int w,int h,Color color) {
        super("MyFrame"+(++id));			//窗口名字
        setBounds(x,y,w,h);					//设置左上角的坐标位置,以及窗口大小
        setVisible(true);					//将窗口可见性打开
        setBackground(color);				//设置窗口的背景颜色
        setResizable(true);					//窗口可以任意改变大小
        setLocation();
    }
}

public class MyFrame {
    public static void main(String[] args) {
        for(int i = 1;i <= 5;i++){
            Color color = new Color(78, 158, 243);
            new TestFrame(i*100,i*100,400,400,color);
        }
    }
}

  1. Panel面板

Panel面板和Frame窗体都是属于awt包下的,面板必须是建立在窗口内的属于组件,一个Frame窗体内可以加任意个Panel面板。一般所有的组件之类的东西都不会直接写在窗口内,而是写在面板上,面板又建立在窗口上。

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class PanelTest {
    public static void main(String[] args) {
        Frame f = new Frame("包含Panel面板的窗体");
        f.setBackground(new Color(71, 149, 232));
        f.setBounds(200,200,400,400);
        f.setResizable(true);           //窗口设置为可见
        f.setLayout(null);              //设置布局
        f.setVisible(true);             //设置可见性
        Panel p = new Panel();
        p.setBackground(Color.PINK);
        p.setBounds(50,50,200,200);
        f.add(p);           //将面板加入到Frame窗体中

        //适配器模式:需要什么方法就写什么
        f.addWindowListener(new WindowAdapter() {       //窗口监听事件
            @Override
            public void windowClosing(WindowEvent e) {	
                //当鼠标点击关闭时程序结束
                System.exit(0);
            }
        });
    }
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值