欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GUI编程

程序员文章站 2022-03-08 10:24:27
...

GUI编程

1 组件

  • 窗口
  • 弹窗
  • 面板
  • 文本窗
  • 列表框
  • 按钮
  • 图片
  • 监听事件
  • 鼠标
  • 键盘事件
  • 外挂
  • **工具
  • class -> 可编译

2 简介

  • GUI核心技术:Swing AWT

    1. 界面不美观

    2. 需要jre环境

3 AWT

​ 1 包含很多接口和类

​ 2 元素:窗口,按钮,文本框

​ 3 java.awt

1 窗口Frame

package com.learn01;

import java.awt.*;

public class TextFrame {
    public static void main(String[] args) {
        Frame frame = new Frame("我的第一个java图形界面窗口");

        //需要设置可见性
        frame.setVisible(true);

        //设置窗口大小
        frame.setSize(400,400);

        //设置背景颜色    Color
        frame.setBackground(new Color(25, 122, 220));

        //弹出的初始位置
        frame.setLocation(200,200);

        //设置大小固定
        frame.setResizable(false);
    }
}

多个弹窗

package com.learn01;

import java.awt.*;

public class TestFrame02 {
    public static void main(String[] args) {
        //展示多个窗口
        MyFrame myFrame1 = new MyFrame(100,100,200,200, Color.blue);
        MyFrame myFrame2 = new MyFrame(300,100,200,200, Color.blue);
        MyFrame myFrame3 = new MyFrame(100,300,200,200, Color.blue);
        MyFrame myFrame4 = new MyFrame(300,300,200,200, Color.blue);
    }


}
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 面板Panel

解决了关闭问题

package com.learn01;

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

public class panel {
    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(34, 125, 215));

        //penel设置坐标,相当于frame
        panel.setBounds(50, 50, 400, 400);
        panel.setBackground(new Color(127, 139, 23));

        //frame.add(panel)
        frame.add(panel);

        frame.setVisible(true);

        //监听事件,窗口关闭事件   system.exit()
        //适配器模式:
        frame.addWindowListener(new WindowAdapter() {
            //窗口关闭要做的事情
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }
}

3 布局管理器

  • 流式布局

    package com.learn01;
    
    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.setSize(200,200);
    
            frame.setVisible(true);
    
            //把按钮添加上去
            frame.add(button1);
            frame.add(button2);
            frame.add(button3);
        }
    }
    
  • 东南西北中

4 Swing

相关标签: java基础 java