标题图

欢迎到我的简书查看我的文集

前言:

GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图形用户界面就是以图形的方式来显示你计算机的操作界面, 我们计算机中操作的界面就是 我们Java中常说的图形用户界面, 这样的操作简单明了.

CLI的英文为Command Line User Interface, 是命令行用户接口, 命令行, 这就是我们程序员常常熟悉的, 常见的Dos命令行操作, 这些常用命令式需要记住的, CLI的操作就不那么直观了.

在Java中GUI提供了对象在 java.awt 和 javax.swing 两个包中

在早年中, Java.awt为抽象窗口工具包, 英文为 Abstract Window ToolKit, 需要调用本地的系统方法来实现功能需求,属于重量级的控件.

而在awt的基础上,创建了一套图形界面系统, 从而提供了更多的组件, 而且完全是由Java实现的, 增强了移植性, 属于轻量级的控件. 有自己的显示效果, 显示自己的形状, 平台要求低了, 轻量级和体统嵌入的比较浅.

继承关系

Component .png

Button按钮,Label标签,Checkbox复选框,TextComponent文本组件,TextArea文本区域,TextField文本框.

组件里面还能放入组件,在Java中我们叫容器.

window 窗体, Panel 面板

Frame小窗口,Dialog对话框,FileDialog文件对话框

GUI 布局

Flow 流式布局

上左下右

扫雷的格式布局

布局管理

常见的布局管理器:

流式布局管理: FlowLayout, 是从左到右的排列, 是Panel默认的布局管理.

边界布局: 东南西北,中, 是Frame默认的布局管理

网格布局管理: GridLayout

卡片布局管理: CardLayout

网格包布局管理: GridBagLayout

GUI 简单的小窗体

java.awt 包含用于创建用户界面和绘制图形图像的所有类.

java.awt 类 Component

java.lang.Object

-> java.awt.Component

所有已实现的接口:

ImageObserver, MenuContainer, Serializable

component 是一个具有图形表示能力的对象.

component

子类

window

java.awt 类 Frame

java.lang.Object

-> java.awt.Component

-> java.awt Container

-> java.awt.Window

-> java.awt.Frame

实现的接口:

ImageObserver, MenuContainer, Serializable, Accessible

直接已知的子类:

JFrame

Frame是带有标题和边框的顶层窗口.

frame

import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

public class FrameDemo {

public static void main(String[] args) {

//1,创建一个窗体。Frame

Frame f = new Frame("my frame");

//2, 对窗体进行基本设置。

f.setSize(500, 400);

f.setLocation(400, 200);

//设置布局。

f.setLayout(new FlowLayout());

//给窗体添加组件。

Button but = new Button("my button");

//加入一个文本框组件。

TextField tf = new TextField(40);

//将组件添加到窗体中。

f.add(tf);

f.add(but);

//1,在按钮上添加所需的监听器。

but.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

System.out.println("按钮被触发了....."+e);

System.exit(0);

}

});

f.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

System.out.println("window closing");

System.exit(0);

}

@Override

public void windowOpened(WindowEvent e) {

System.out.println("孔雀开屏!window open");

}

});

but.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

if(e.getClickCount() == 2){

System.out.println("mouse double click");

}

}

});

tf.addKeyListener(new KeyAdapter() {

@Override

public void keyPressed(KeyEvent e) {

//1,如何获取录入的内容。通过键盘事件对象获取。

// char key = e.getKeyChar();

// int code = e.getKeyCode();

// System.out.println(code+"...."+KeyEvent.getKeyText(code));

// int code = e.getKeyCode();

// if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){

// System.out.println("必须是0-9数字");

// e.consume();//直接取消默认处理方式。

// }

if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){

System.out.println("ctrl+enter run");

}

}

});

//3,让窗体显示。

f.setVisible(true);

System.out.println("over");

}

}

事件监听机制

事件源-组件

事件 - Event

监听器 - Listener

事件处理

Button

java.awt

classButton

java.lang.Object

-> java.awt.Component

-> java.awt.Button

button

监听事件:

addActionListener(ActionListener l)

添加指定的动作侦听器以从此按钮接收动作事件。

窗口适配器

MouseListener

mouseListener

public interface MouseListener extends EventListener

用于在组件上接收“有趣”鼠标事件(按,释放,单击,输入和退出)的侦听器界面。

方法

方法的详细信息:

mouseClicked

void mouseClicked(MouseEvent e)

在组件上单击鼠标按钮时调用

mousePressed

void mousePressed(MouseEvent e)

在组件上按下鼠标时调用

mouseReleased

void mouseReleased(MouseEvent e)

在组件上释放鼠标时调用

mouseEntered

void mouseEntered(MouseEvent e)

当鼠标进入组件时调用

mouseExited

void mouseExited(MouseEvent e)

当鼠标退出组件时调用

方法摘要

文本名称

图形化界面的工具

选择

选择2

选择3

选择4

选择5

//1,获取路径。通过文本框对象完成。

String str_dir = jTextField1.getText();

//2,将字符串路径封装成File对象。

File dir = new File(str_dir);

//判断。

if(dir.exists()&&dir.isDirectory()){

//清空文本区域。

jTextArea1.setText("");

//3,获取文件名称列表。

String[] names = dir.list();

for(String name :names){

//4,将名字显示到文本区域。

jTextArea1.append(name+LINE_SEPARATOR);

}

}

JFileChooser

public class JFileChooser extends JComponent implements Accessible

注意

事件监听机制流程:

监听器 - 将监听器注册到事件源

事件源 - 组件 (外部动作)

产生事件对象 - 将事件对象传给事件处理方式

菜单继承

继承

MenuComponent

MenuBar,MenuItem,Menu

达叔小生:往后余生,唯独有你

You and me, we are family !

90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通

简书博客: 达叔小生

https://www.jianshu.com/u/c785ece603d1

结语

下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注

小礼物走一走 or 点赞

java边界布局东南西北_第58节:Java中的图形界面编程-GUI相关推荐

  1. java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI

    欢迎到我的简书查看我的文集 前言: GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图 ...

  2. 第58节:Java中的图形界面编程-GUI

    欢迎到我的简书查看我的文集 前言: GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图 ...

  3. Java中的图形界面编程-GUI

    欢迎到我的简书查看我的文集 前言: GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图 ...

  4. java边界布局东南西北_破局!发展大南昌格局!城市向南生长或是关键!

    城市的生长离不开疆域扩张,如今的南昌城市版图已经形成一定规模,在新中国成立后,七十余年沧桑巨变,这座城市的城镇化不仅让大面积区域从"乡土"转变为"城市",也让城 ...

  5. java边界布局东南西北_JAVA swing布局管理器实例解析

    组件在容器(比如Jframe)中的位置和大小是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组件的布局管理. 种类 java共提供了五种布局管理器,只介绍三种是最常见的布局管 ...

  6. java编写布局文件_鸿蒙OS利用JAVA编写的布局实践练习

    鸿蒙OS利用JAVA编写的布局实践练习 鸿蒙OS利用JAVA编写的布局实践练习 目录 JAVA UI框架 利用JAVA代码实现一个简单的布局 利用xml实现上述布局 JAVA UI框架 ??应用的Ab ...

  7. java swing事件_第四节 Java Swing事件处理

    第四节:事件处理 一个图形界面完的成只是程序开发中起步的工作,因为要想让每一个组件都发挥其作用,就必须对所有的组件进行事件处理.那么什么是事件处理,所谓事件就表示一个对象发生状态变化.例如,每当按下一 ...

  8. java图形界面多线程_多线程编程、Java I/O系统和Java图形界面编程

    多线程编程: 一个正在运行的程序通常称为一个进程,每一个任务称为一个线程,中能够在一个程序内运行多线程的程序称为多线程程序. 线程与进程的区别:①每个进程都需要操作系统为其分配独立的内存空间: ②而同 ...

  9. Java图形编程实验总结_实验二java图形界面编程2015级.doc

    实验二java图形界面编程2015级.doc 实验二JAVA图形界面编程一.实验目的熟悉JAVA运行环境,编程掌握JAVASWING组件的图形界面编程.二.实验环境微机,软件MYECLIPSE,JDK ...

  10. java 2d划线 刷子_简易画板的JAVA实现

    要实现一个画图板,首先我们要掌握的是图形界面开发和事件监听机制.在Java中,图形界面开发有三套组件: 1.AWT组件:这是JDK1.0推出的图形组件类,位于java.awt这个包下.AWT组件被称为 ...

最新文章

  1. Django 各类配置选项全集
  2. 从放弃到入门-Yaf(框架生成)
  3. 简明机器学习教程——实践篇(一):从感知机入手
  4. Code Quality
  5. python刷题总结_【python刷题】差分数组
  6. 【PTVS+Theano+CPU/GPU】在windows下使用VS安装theano深度学习工具
  7. 转:常用的几种加密算法以及java实现
  8. AI算法连载13:统计之数据预处理特征工程
  9. [ 转载 ] Java基础12--基础学习总结——数组
  10. TypeScript 热度超 C 与 Python、Go 开发收入高、运维吃香,调查了 65000 名开发者有这些发现!...
  11. python中的shallow copy 和 deep copy
  12. 如何查看本机IP地址?
  13. 互联网行业中,哪些职位比较有前途?
  14. 网闸准入控制负载均衡
  15. 使用starUML一步一步画顺序图
  16. 大型能源装备制造企业数字化转型实践----工业软件讲坛第八次讲座
  17. 广东深圳计算机学校排名2015,2015年广东深圳重点小学排名
  18. 【JS处理excel,SheetJS入门笔记】
  19. 学习PHP——高级(总)
  20. 苹果数据泄漏:内鬼频出,这是库克的错吗?

热门文章

  1. 网络工程师学习Linux的亲身历程
  2. win7锁定该计算机快捷键,Win7电脑锁定计算机快捷键的方法.ppt
  3. AR涂涂乐⭐九、视频展示及涂涂乐源文件
  4. 固态硬盘安装操作系统
  5. 二、 在Sails中使用Typescript
  6. python求一元三次方程的根_一元高次方程寻根记杂谈
  7. 高性能ORM数据访问组件Deft,比dapper快20%以上
  8. 行为式验证码小侃,滑块验证码详解
  9. JS实现获取今天星期几
  10. ArcGIS Server 服务启动停止解决方法