GUI编程入门到游戏实战(狂神)--GUIp1-5

Gui编程简介

学什么

  • GUI是什么
  • 怎么用
  • 怎么玩

组件

  • 窗口
  • 弹窗
  • 面板
  • 文本框
  • 列表框
  • 按钮
  • 图片
  • 监听事件
  • 鼠标
  • 键盘事件
  • 外挂

简介

GUI核心技术:Swing、AWT,但逐渐淘汰

原因:

  • 界面不美观
  • 需要jre环境

好处:

  • 可写一些想要的小工具
  • 可能维护到swing界面
  • 了解MVC,了解监听

AWT

介绍

  • 抽象的窗口工具。包含很多类和接口。GUI:图形界面编程

  • 元素:窗口、按钮、文本框

  • 工具存在java.awt包中

GUI编程入门到游戏实战(狂神)--GUIp1-5_第1张图片

组件、容器

//GUI第一个界面
public class Demo1 {
    public static void main(String[] args) {
        Frame frame = new Frame("第一个GUI窗口");
        //设置可见性
        frame.setVisible(true);
        //设置窗口大小
        frame.setSize(300, 300);
        //设置背景
        Color color = new Color(60,100,90);
        frame.setBackground(color);
        //初始位置
        frame.setLocation(900,500);
    }
}

采用封装:

package GUI.lee.test;
import javax.swing.*;
import java.awt.*;
public class Demo2 {
    public static void main(String[] args) {
        //多窗口
        MyFrame myFrame1 = new MyFrame(500, 200, 100, 100, Color.red);
        MyFrame myFrame2 = new MyFrame(900, 700, 300, 300, Color.gray);
        MyFrame myFrame3 = new MyFrame(1200, 300, 300, 300, Color.blue);
        MyFrame myFrame4 = new MyFrame(100, 100, 300, 300, Color.pink);
    }
}
//封装
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);
    }
}

面板

package GUI.lee.test;

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

public class panel {
    public static void main(String[] args) {
        Frame frame = new Frame();
        //布局概念
        Panel panel = new Panel();

        //设置布局
        frame.setLayout(null);
        //坐标
        frame.setBounds(400,400,500,500);
        frame.setBackground(new Color(30,60,10));

        //panel设置坐标 相对于frame
        panel.setBounds(70,70,50,50);
        panel.setBackground(new Color(100,60,10));
        //将panel放入frame
        frame.add(panel);
        //设置可见性
        frame.setVisible(true);
        //监听事件,监听窗口关闭:frame.addWindowListener
        //适配器模式:new WindowAdapter()
        frame.addWindowListener(new WindowAdapter() {
            //窗口关闭时需要做的事情
            @Override
            public void windowClosing(WindowEvent e) {
                //结束程序
                System.exit(0);
            }
        });
    }
}

布局管理器

  • 流式布局(自适应)

  • //流式布局 0:左 1:中 2:右 3:左上 4:右上
    //frame.setLayout(new FlowLayout(FlowLayout.));
    frame.setLayout(new FlowLayout());
    
  • 东西南北中(占窗口的东西南北中之一)

  • frame.add(button4,BorderLayout.EAST);
    
  • 表格布局 (a*b的布局)

  • frame.setLayout(new GridLayout(a,b));
    

你可能感兴趣的:(java)