GUI

《1》 Graphical User Interface(图形用户接口)。

《2》用图形的方式,来显示计算机操作的界面,这样更方便更直观。

《3》Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中

新建一个基本的窗体

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
public class GuiDemes {
        public static void main(String[] args)

         {// TODO Auto-generated method stub
                med();
        }
        private static void med() {
//创建窗体
        Frame f = new Frame("my java");
//对窗体进行基本设置
//设置显示窗体的大小
        f.setSize(500,400);
//设置显示窗体显示的位置
        f.setLocation(300, 200);
//设置布局方式
        f.setLayout(new FlowLayout());
//创建一个按钮对象
        Button b = new Button("按纽");
//将按纽添加到显示窗体中去
        f.add(b);
//调用方法使窗体显示在窗口中
        f.setVisible(true);
        }

}


事件监听机制

《1》事件源——就是awt包中的或者swing包中的那些图形界面组件

《2》事件——每一个事件源都有自己特有的对应事件和共性事件

《3》监听器——将可以触发某一个事件的动作都已经封装到了监听器中

《4》事件处理——这是我们要做的事情,对产生的动作进行处理


添加一个关闭功能

第一种方式:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class GuiDemes {
        public static void main(String[] args) 
        {// TODO Auto-generated method stub
                med();
        }
        private static void med()

        {
//创建窗体
                Frame f = new Frame("my java");
//对窗体进行基本设置
//设置显示窗体的大小
                f.setSize(500,400);
//设置显示窗体显示的位置
                f.setLocation(300, 200);
//设置布局方式
                f.setLayout(new FlowLayout());
//创建一个按钮对象
                Button b = new Button("按纽");
//将按纽添加到显示窗体中去
                f.add(b);
//调用自定义关闭对象来关闭显示窗体
                f.addWindowListener(new mywinclose());
//调用方法使窗体显示在窗口中
                f.setVisible(true);
                }
}
//自定义一个关闭类
 class mywinclose extends WindowAdapter
        {
        public void windowClosing(WindowEvent e)
        {
                System.out.println("666"+e.toString());
                System.exit(0);
        }
}

第二种实现方式:定义一个匿名内部类

        private static void med()

        {
//创建窗体
                Frame f = new Frame("my java");
//对窗体进行基本设置
//设置显示窗体的大小
                f.setSize(500,400);
//设置显示窗体显示的位置
                f.setLocation(300, 200);
//设置布局方式
                f.setLayout(new FlowLayout());
//创建一个按钮对象
                Button b = new Button("按纽");
//将按纽添加到显示窗体中去
                f.add(b);
//创建一个匿名内部类来执行关闭功能
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                         }
                });
//调用方法使窗体显示在窗口中
                f.setVisible(true);
        }



简单优化代码

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class  FrameDemo
        {

//定义该组件中所需的引用
                private Frame f;
                private Button but;
                FrameDemo()
                {
                        init();
                }
                public void init()
                {
                        f = new Frame("my java");
//对窗体进行设置
                        f.setBounds(100,552,444,568);
                        f.setLayout(new FlowLayout());
                        but = new Button("my button");
//将按纽添加到窗体中去
                        f.add(but);
//加载下窗体事件
                        myEvent();
//显示窗体
                        f.setVisible(true);
        }
        private void myEvent()
        {
                        f.addWindowListener(new WindowAdapter()
                        {
                               public void windowClosing(WindowEvent e)
                                   {
                                        System.exit(0);
                                        }
                        });
             }
}
public class GuiDemes {

public static void main(String[] args) 
{// TODO Auto-generated method stub
med2();
}
private static void med2() {
// TODO Auto-generated method stub
FrameDemo f = new FrameDemo();
}

使窗体中的按纽具备关闭功能

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class  FrameDemo
{
//定义该组件中所需的引用
        private Frame f;
        private Button but;
        FrameDemo()
        {
                init();
        }
        public void init()
        {
                f = new Frame("my java");
//对窗体进行设置
                f.setBounds(100,552,444,568);
                f.setLayout(new FlowLayout());
                but = new Button("my button");
//将按纽添加到窗体中去
                f.add(but);
//加载下窗体事件
                myEvent();
//显示窗体
                f.setVisible(true);
        }
        private void myEvent()
        {
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });
//让按纽具备退出程序的功能
                but.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                System.out.println("按纽执行");
                                        System.exit(0);
                        }
                });

}
}
public class GuiDemes {
        public static void main(String[] args) 
        {// TODO Auto-generated method stub
                med2();
        }
        private static void med2() 

        {
                FrameDemo f = new FrameDemo();
        }

运行程序:

-----------------------------------------------------------------------------------------------------------------

建立窗体中按钮活动事件:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.A
ctionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemos2 
{
        public static void main(String[] args) 
        {
             ButtonDemo b = new ButtonDemo();
        }        
}
class ButtonDemo
{
        private Frame f;
        private Button but;
        ButtonDemo()
        {
                show();
        }
        private void show() 
        {
// TODO Auto-generated method stub
        f= new Frame("myjava");
//设置窗体属性
        f.setBounds(200,200, 200, 200);
        f.setLayout(new FlowLayout());
//设置一个按纽,并将其添加到窗体中去
        but = new Button("mybutton");
        f.add(but);
//调用自定义事件监听机制
        myEvent();
//设置在窗口中显示窗体
        f.setVisible(true);
        }
        private void myEvent() {
//建立窗体中按钮活动事件
        but.addActionListener(new ActionListener()
        {
                public void actionPerformed(ActionEvent e)
                {
                        System.out.println("action ok ");
                }
        });
//建立关闭按钮关闭窗体事件
         f.addWindowListener(new WindowAdapter()
        {
                public void  windowClosing(WindowEvent e)
                {
                           System.exit(0);
                           System.out.println("窗体关闭按钮执行");
                }
        });
}
}

-----------------------------------------------------------------------------------------------------------------

向窗体中的按纽添加鼠标单击监听


import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemos2 
{
        public static void main(String[] args)
        {
             ButtonDemo b = new ButtonDemo();
        }
}
class ButtonDemo
{
        private Frame f;
        private Button but;
        ButtonDemo()
        {
                show();
        }
        private void show() 
        {
                f= new Frame("myjava");
//设置窗体属性
                f.setBounds(200,200, 200, 200);
                f.setLayout(new FlowLayout());
//设置一个按纽,并将其添加到窗体中去
                but = new Button("mybutton");
                f.add(but);
//调用自定义事件监听机制
                myEvent();
//设置在窗口中显示窗体
                f.setVisible(true);
        }
        private void myEvent() 
        {
//建立窗体中按钮鼠标单击活动事件
                but.addMouseListener(new MouseAdapter()
                {
                        public void mouseEntered(MouseEvent e)
                        {
                                System.out.println("鼠标移动到了按纽上");
                        }
                        public void mouseClicked(MouseEvent e)
                        {
                        //方法getClickCount 是获取鼠标单击的次数的
                                if(e.getClickCount()==1)
                                    {
                                         System.out.println("鼠标单击了");
                                    }
                                if(e.getClickCount()==2)
                                        {
                                        System.out.println("鼠标双击了");
                                        }
                        }
                });
//建立关闭按钮关闭窗体事件
                f.addWindowListener(new WindowAdapter()
                {
                        public void  windowClosing(WindowEvent e)
                        {
                           System.out.println("窗体关闭按钮执行");
                           System.exit(0);
                        }
                });
        }
}
运行程序后:显示出窗体,将鼠标移动到窗体的按纽上进行单击和双击测试



-----------------------------------------------------------------------------------------------------------------

向窗体中的按钮添加键盘按键监听机制


import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemos2 
{
        public static void main(String[] args) 
        {
             ButtonDemo b = new ButtonDemo();
        }
}
class ButtonDemo
{
        private Frame f;
        private Button but;
        ButtonDemo()
        {
                
show();
        }
        private void show() 
        {
// TODO Auto-generated method stub
                
f= new Frame("myjava");
//设置窗体属性
                f.setBounds(200,200, 200, 200);
                f.setLayout(new FlowLayout());
//设置一个按纽,并将其添加到窗体中去
                but = new Button("mybutton");
                f.add(but);
//调用自定义事件监听机制
                myEvent();
        //设置在窗口中显示窗体
                f.setVisible(true);
        }
        private void myEvent() 
        {
//建立窗体中按钮键盘点击活动事件
                but.addKeyListener(new KeyAdapter()
                 {
                        public void keyPressed(KeyEvent e)
                        {
//设置esc键退出窗体功能
                                if(e.getKeyCode()==KeyEvent.VK_ESCAPE)
                                {
                                   System.out.println("键盘按银退出");
                                   System.exit(0);
                                        }
                          System.out.println("按键为"+e.getKeyChar());
                }
        });

//建立关闭按钮关闭窗体事件
                f.addWindowListener(new WindowAdapter()
                {
                        public void  windowClosing(WindowEvent e)
                        {
                           System.out.println("窗体关闭按钮执行");
                           System.exit(0);
                        }
                });
        }
}

-----------------------------------------------------------------------------------------------------------------

向显示窗体中添加一个文本方框


import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemos2 
{
        public static void main(String[] args) 
        {
             ButtonDemo b = new ButtonDemo();
        }
}
class ButtonDemo
{
        private Frame f;
        private Button but;
        private TextField tx;
        ButtonDemo()
        {
                
show();
        }
        private void show() 
        {
// TODO Auto-generated method stub
                f= new Frame("myjava");
//设置窗体属性
                f.setBounds(200,200, 200, 200);
                f.setLayout(new FlowLayout());
//新建一个文本方框,并将其添加到显示窗体中去
                tx = new TextField(20);
                f.add(tx);
//设置一个按纽,并将其添加到窗体中去
                but = new Button("mybutton");
                f.add(but);
//调用自定义事件监听机制
                myEvent();
//设置在窗口中显示窗体
                f.setVisible(true);
        }
        private void myEvent() 
        {
//添加一个文本监听事件
                tx.addKeyListener(new KeyAdapter()
                {
                        public void keyPressed(KeyEvent e)
                        {
//设定输入文字的限定,如果输入的数据不合格,则给出相应提示,
                                int code = e.getKeyCode();
                                if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))
                                 {
                                        System.out.println("数据不合格");
//调用方法,只要按键不合格,那么对应的值就不会输入到文本框中去
                                        e.consume();
                                        }
                        }
                });
//建立关闭按钮关闭窗体事件
                f.addWindowListener(new WindowAdapter()
                {
                        public void  windowClosing(WindowEvent e)
                        {
                           System.out.println("窗体关闭按钮执行");
                           System.exit(0);
                        }
                });
        }
}
运行程序后;向显示窗体中的文本方框中输入

练习
在文本框中输入目录,点击“转到”按钮,将该目录中的文件与文件夹名称列在下面的文本区域中去




import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class WindowDemo1 
{
        public static void main(String[] args) 
        {
                MyWindowDemo m = new MyWindowDemo();
        }
}
class MyWindowDemo
{
        private Frame f;
        private Button but;
        private TextField t1;
        private TextArea t2;
        MyWindowDemo()
        {
                init();
         }
        public void init()
        {
//新建一个窗体并设置窗体的属性
                f= new Frame("myjava");
                f.setBounds(200,200,500,400);
                f.setLayout(new FlowLayout());
//新建一个提示按钮
                but = new Button("转到");
                t1=new TextField(40);
                t2 = new TextArea(20,60);
                f.add(t1);
                f.add(but);
                f.add(t2);
//调用自定义监听机制
                myEvent();
//调用方法使窗体在窗口中显示
                f.setVisible(true);
        }
        private void myEvent() 
        {
// TODO Auto-generated method stub
//添加一个窗口窗体活动事件,实现关闭按纽点击关闭窗体
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.out.println("窗体关闭按钮关闭");
                                System.exit(0);
        
                        }
                });
//添加一个按钮监听事件
                but.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                String dirPath= t1.getText();
//将获取的文件路径封装对象
                                File dir = new File(dirPath);
//判断文件目录是否存在,如果不存在,则执行些代码块,给出相应提示
                                if(!dir.exists())
                                        t2.setText("目录文件不存在,请重新输入");
//如果文件目录存在,则执行下面的操作
                                if(dir.exists()&&dir.isDirectory())
                                {
                                        String[] names = dir.list();
                                        for(String s :names)
                                        {
                                                t2.append(s+"\r\n");

                        }
                                }
//清空输入框
                                 t1.setText("");
                        }
                } );
        }
}

运行程序,并在文本框中输入相应的目录路径



加入对话框Dialog

import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class WindowDemo1 
{
        public static void main(String[] args) 
        {
                MyWindowDemo m = new MyWindowDemo();
        }
}
class MyWindowDemo
{
        private Frame f;
        private Button but;
        private TextField t1;
        private TextArea t2;
        private Dialog d ;
        private Label lab;
        private Button okbut;
        MyWindowDemo()
        {
                init();
        }
        public void init()
        {
//新建一个窗体并设置窗体的属性
                f= new Frame("myjava");
                f.setBounds(200,200,500,400);
                f.setLayout(new FlowLayout());
//新建一个提示按钮
                but = new Button("转到");
                t1=new TextField(40);
                t2 = new TextArea(20,60);
                f.add(t1);
                f.add(but);
                f.add(t2);
//创建一个显示窗口
                d = new Dialog(f,"提示信息",true);
//设置显示窗口
                d.setBounds(200, 200,400, 400);
                d.setLayout(new FlowLayout());
                lab = new Label();
                okbut = new Button("确定");

                d.add(lab);
                d.add(okbut);
                //调用自定义监听机制
                myEvent();
//调用方法使窗体在窗口中显示
                f.setVisible(true);
        }

        public void myEvent() 
        {
//添加一个文本框内容按键Enter输入
                t1.addKeyListener(new KeyAdapter()
                {
                        public void keyPressed(KeyEvent e)
                        {
                                if(e.getKeyCode()==KeyEvent.VK_ENTER)
                                        show();
                        }
                });
//添加点击按纽退出提示窗口监听事件
                okbut.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                d.setVisible(false);
                        }
                });
//添加点击Enter键 退出提示窗口
                okbut.addKeyListener(new KeyAdapter()
                {
                        public void keyPressed(KeyEvent e)
                        {
                                if(e.getKeyCode()==KeyEvent.VK_ENTER)
                                        d.setVisible(false);
                        }
                });
// TODO Auto-generated method stub
//添加d窗口的活动监听事件
                d.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                d.setVisible(false);
                        }
                });
//添加一个窗口窗体活动事件,实现关闭按纽点击关闭窗体
                f.addWindowListener(new WindowAdapter()
                        {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });
//添加一个按钮监听事件
                but.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                show();
                        }
                });
}

        public  void show()

        {
                String dirPath= t1.getText();
//将获取的文件路径封装对象
                File dir = new File(dirPath);

//如果文件目录存在,则执行下面的操作
                if(dir.exists()&&dir.isDirectory())
                {
                        String[] names = dir.list();
                        for(String s :names)
                        {
                                t2.append(s+"\r\n");

                        }
                }
                else
                {
                        String info = "输入的信息"+dirPath+"不符合要求";
                           lab.setText(info);
                          d.setVisible(true);
                }
 //清空输入框
          t1.setText("");

        }
}

向对话框中添加菜单功能


import java.awt.*;
import java.awt.event.*;
public class MenuDemo 
{
        public static void main(String[] args) 
        {
// TODO Auto-generated method stub

                MyMenu m = new MyMenu();
        }
}
class MyMenu
{
        private Frame f;
        private MenuBar mb;
        private Menu m,subMenu;
        private MenuItem closeItem,subItem;
        MyMenu()
        {
                init();
        }
        public void init()
        {
                f = new Frame("myjava");
                f.setBounds(200,200,200,200);
                f.setLayout(new FlowLayout());

                mb = new MenuBar();
                m  = new Menu("文件");
                subMenu = new Menu("子菜单");

                subItem = new MenuItem("子条目");

                closeItem = new MenuItem("退出");

                subMenu.add(subItem);
                m.add(subMenu);
                m.add(closeItem);
                mb.add(m);
                f.setMenuBar(mb);
                myEvent();
                f.setVisible(true);
        }
        private void myEvent()

         {

                closeItem.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                System.exit(0);
                        }
                });
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                         {
                                System.exit(0);
                        }
                });

        }
}




java基础—GUI概述相关推荐

  1. Java基础-GUI编程讲解

    GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 简介 GUI的核心技术:Swing和AWT 1.界面不美观 2.需要jre环境 3.GUI是MVC的 ...

  2. Java基础-GUI入门-AWT详解

    AWT 2.1.AWT介绍 其包含了很多的类和接口. 元素:窗口,按钮,文本框. Java.awt: 2.2.组件和容器 1.Frame 代码: package com.edwin.lession01 ...

  3. Java基础---API概述---常用类(Object类/String类)---equals和==

    API概述 API:application programming interface,应用程序编程接口 用于规定方法名称的规则集合,定义了方法的修饰符.返回值类型.方法的名称.方法的参数列表.方法的 ...

  4. Java项目:考试系统Java基础Gui(java+Gui)

    源码获取:博客首页 "资源" 里下载! 功能简介: 所属课程.题目内容.题目选项.题目答案.题目等级.学生管理.试卷管理.题目管理.时间控制 服务页面: public class ...

  5. [Java基础]Collections概述和使用

    代码如下: package CollectionDemo01;import java.util.ArrayList; import java.util.Collection; import java. ...

  6. 2.Java基础之概述-流程控制+数组+IDEA基本使用+程序调试

    1.流程控制 1.1 流程是什么 生活中处处都有流程:比如你们大学报到 程序就是为了解决生活的问题,程序也有流程 1.2 顺序流程 从上到下,一条直线走下去 1.3 分支结构 1.3.1 if单分支 ...

  7. Java项目:银行管理系统+文档Java基础Gui(java+Gui)

    源码获取:博客首页 "资源" 里下载! 功能介绍: 登录.打印.取款.改密.转账.查询.挂失.存款.退卡 服务模块: public class atmFrame extends J ...

  8. [Java基础]模块化概述

  9. [Java基础]反射概述

最新文章

  1. python 运算太慢怎么办_python:网络安全攻击与防御的工具
  2. python 装饰器实现缓存_Python, 这一个缓存装饰器, 其执行流程是怎样的?
  3. 世界上公认最难的十大学科
  4. 为何外界常说扎克伯格是机器人?源于2018年的一场听证会
  5. 7 操作系统第二章 进程管理 进程同步与互斥
  6. HTML页面在IOS上出现卡顿的解决方案(overflow:scroll)
  7. 同一列两行数据怎么合并成一行_经常加班怎么办?两分钟学会这4招,让同事刮目相看!...
  8. 每个 JavaScript 工程师都应懂的33个概念
  9. 大数据hadoop常见端口
  10. igzo屏幕优点与缺点_手机贴膜怎么选?选对了可以省个屏幕钱
  11. 详解浏览器事件捕获、冒泡
  12. Linux安装wordpress
  13. PageOffice 在线打开 word 文件并添加水印
  14. oracle 考试资料,Oracle考试复习题
  15. 时间拆分法------高效率的使用完成开发工作之外的剩余时间掌握多门开发语言
  16. 在机顶盒上被移除adb后恢复的办法
  17. 美团前端组件化开发实践
  18. Hexo+Yilia 所遇问题解决方法汇总
  19. SSL/TLS协议交互流程分析
  20. 2020年度总结-送你一张腾讯视频VIP月卡

热门文章

  1. GAN也有脾气:「太难的部分我就不生成了,在下告退」
  2. 火爆全网络!这个GitHub项目开源了!搞定目标检测、图像识别
  3. 学术前沿 | DeepMind最新成果:图表示学习算法推理~46页ppt
  4. 综述 | 国防科技大学发布最新「3D点云深度学习」综述论文
  5. 机器学习(二)逻辑回归
  6. mysql 存储过程 预处理语句_用于预处理语句的MySQL存储过程游标
  7. java压栈重复字符串_Java 实例 – 压栈出栈的方法实现字符串反转
  8. matlab 线性规划_从零开始的matlab学习笔记——(37)线性规划——后传
  9. Service Mesh 落地挑战
  10. 删除出现次数最少字符串JAVA_牛客网——华为机试(题23:删除字符串中出现次数最少的字符)(Java)...