美文网首页
GUI(图形用户界面)

GUI(图形用户界面)

作者: 咸鱼有梦想呀 | 来源:发表于2017-12-01 14:27 被阅读0次

一、GUI

GUI
Graphical User Interface(图形用户接口)
用图形的方式,来显示计算机操作的界面。这样更方便和更直观。
Java为GUI提供的对象都在java.awt和javax.swing两个包中。

CLI
Command Line User Interface(命令行用户接口)
就是常见的Dos命令行操作
需要记忆一些常用命令,操作不直观。

java.awt
Abstract Window ToolKit(抽象窗口工具包)
需要调用本地系统方法实现功能。属于重量级控件。

javax.swing
在AWT的基础上,建立的一套图形界面,其中提供了很多组件,完全由Java实现。增强了移植性,属于轻量级控件。

组件:组成图形界面的零件。
控件:可以控制的组件。

二、布局管理器

容器中的组件摆放,

1.FlowLayout 流式布局管理器
从左到右的顺序排列
Panel默认的布局管理器

2.BorderLayout 边界式布局管理器
东,南,西,北,中
Frame默认的布局管理器

3.GridLayout 网络布局管理器
规矩的矩阵

4.CardLayout 卡片布局管理器
选择卡

5.GridBagLayout 网格包布局管理器
非规则的矩阵

三、组件

关系继承

继承图

Container:是容器,是一个特殊的组件,该组件可以通过add方法添加其他组件进来。

Component
是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。

四、窗体

构建一个窗体:
1.创建窗体,并做基本设置(窗体大小,显示位置,布局)
2.建立其组件
3.添加组件到窗体
4.让窗体显示

代码:

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FlowLayout;

import javax.swing.JFrame;

public class JFrameDemo {
    public static void main(String[] args)
    {
        JFrame j = new JFrame();
        JFrame f = new JFrame("窗口2");
        j.setBounds(500, 200, 200, 300);
        j.setLayout(new BorderLayout(100,100));
//      f.setBounds(200, 0, 350, 300);
//      j.setVisible(true);
        j.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
//      f.setVisible(true);
//      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        /*//设置边框布局
        j.setLayout(new BorderLayout(10,10));
        Button b = new Button("我是一个按钮");
        //默认为中
        f.add(b);
        //在北的
        f.add(new Button("北"),BorderLayout.NORTH);*/
        //设置流式布局
        j.setLayout(new FlowLayout());
        for (int i = 0; i < 6; i++) {
            j.add(new Button("按钮"+i));
        }
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        j.setVisible(true);
    }
}
运行结果

五、 事件监听

1.事件监听机制组成

  • 事件源(组件)
  • 事件(Event)
  • 监听器(Listener)
  • 事件处理(引发事件后处理方式)
事件监听机制流程图

举个栗子:

做一个调查兴趣爱好的表单

代码如下:

import java.awt.FlowLayout;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JRadioButton;

public class DialogDemo extends JDialog {
    JButton button1,button2; //按钮对象
    JCheckBox checkBox1,checkBox2,checkBox3; //3个复选框对象
    JRadioButton radio1,radio2;  //2个单选按钮对象
    
    
public DialogDemo(){
    init();  //调用初始化方法
    setVisible(true);//设置对话框可见
    setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//设置对话框可关
}

 void init() {
     setLayout(new FlowLayout());//设置布局
     add(new JLabel("你喜欢的运动"));//添加标签对象
     checkBox1 = new JCheckBox("瑜伽");//创建复选框对象
     checkBox2 = new JCheckBox("足球");
     checkBox3 = new JCheckBox("游泳");
     add(checkBox1);             //添加复选框对象
     add(checkBox2);
     add(checkBox3);
     
     add(new JLabel(" 你  的  性  别  是: "));
     ButtonGroup group = new ButtonGroup();//创建单选按钮组对象
     radio1 = new JRadioButton("男");//创建单选按钮对象
     radio2 = new JRadioButton("女");
     group.add(radio1);//添加单选按钮到按钮组中
     group.add(radio2);
     add(radio1);//单选按钮添加到对话框
     add(radio2);
     
     button1 = new JButton("注册");//创建按钮对象
     button2 = new JButton("取消");
     add(button1);//添加按钮到对话框
     add(button2);
}
    
    public static void main(String[] args) {
        DialogDemo dia = new DialogDemo();//创建对话框对象 
        dia.setBounds(100, 100, 270, 260);//设置对话框位置和大小
        dia.setTitle(" ");//设置对话框标题
    }

}

运行结果:


兴趣爱好调查表

相关文章

网友评论

      本文标题:GUI(图形用户界面)

      本文链接:https://www.haomeiwen.com/subject/tlaybxtx.html