java程序 图形界面_Java中的图形界面编程-GUI

9645bcc9a6c0429201974e50668c8a6f.png欢迎到我的简书查看我的文集

前言:

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实现的, 增强了移植性, 属于轻量级的控件. 有自己的显示效果, 显示自己的形状, 平台要求低了, 轻量级和体统嵌入的比较浅.继承关系

ccd270caf6537f42347f74fae49ffb7a.png

Component .png

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

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

window 窗体, Panel 面板

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

Flow 流式布局

f0bbbf232ab838a0de010b599f0fea00.png

上左下右

扫雷的格式布局布局管理

常见的布局管理器:

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

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

网格布局管理: GridLayout

卡片布局管理: CardLayout

网格包布局管理: GridBagLayoutGUI 简单的小窗体

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

java.awt 类 Component

java.lang.Object

-> java.awt.Component

所有已实现的接口:

ImageObserver, MenuContainer, Serializable

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

167648f47b093d099faf620554df2a08.png

component

9c73d0c5ad9ba69668ea17641359608f.png

子类

36d774a46935a75b023c992c0ae4d089.png

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是带有标题和边框的顶层窗口.

d442fcd4bbd2871f77b133d989f6b540.png

frameimport 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

5c116384a802b05c41b975456736d84f.png

button监听事件:

addActionListener(ActionListener l)

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

03dbcc6bc9944ca0cd57e3c9925e83f7.png

窗口适配器MouseListener

7974502361198625bae98fe0eeadbdf3.png

mouseListener

public interface MouseListener extends EventListener

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

857b51f0ec2286dc9664089157a73598.png

方法

方法的详细信息:

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)

当鼠标退出组件时调用

0c50f6540a5a164e1328fe983de12f3b.png

方法摘要

9b5fbd0ee0ef2198dce555c6f699dea4.png

文本名称图形化界面的工具

cef0398aafabd55897f035261fdc7b52.png

选择

fd1d1edbc04642fa717f282568163ebc.png

选择2

4d14ba4a0bbf13b6e3b7736bbe1f84a7.png

选择3

aa09e6f28fb10397656abe0d49ef6ce3.png

选择4

6de3ea334d50a9e6a4002c15f2e9b9cc.png

选择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);

}

}

052752e4cb5e76c2af3a842ebe8e44f3.png

JFileChooser

public class JFileChooser extends JComponent implements Accessible

14b02440c001a3d03927715544422474.png

注意事件监听机制流程:监听器 - 将监听器注册到事件源

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

产生事件对象 - 将事件对象传给事件处理方式菜单继承

c9fa9214d5e07b66d3f9d57fd4ab0e9e.png

继承

MenuComponent

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

You and me, we are family !

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

简书博客: 达叔小生

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

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

小礼物走一走 or 点赞

这是一个有质量,有态度的公众号

喜欢本文的朋友们

欢迎长按下图关注订阅号

收看更多精彩内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 全国计算机等级考试二级教程——java语言程序设计的PDF版本是一本介绍Java编程语言的教程书籍。这本书对于计算机等级考试二级的学习者来说非常有用。 Java语言是一种通用的高级编程语言,它被广泛应用于跨平台应用程序的开发。这本教程主要围绕Java语言的程序设计展开,内容包括Java语言的基础知识、面向对象编程、异常处理、文件IO操作、多线程编程、网络编程等。 这本教程通过分章节详细介绍了Java语言的各个方面,从基础知识开始,逐渐深入,适合初学者学习。每个章节都通过理论讲解和实践代码演示相结合的方式,让读者能更好地理解和运用所学知识。 此外,这本教程还提供了丰富的练习题目和编程实践,帮助读者巩固所学内容,并提升编程能力。同时,书还包含了考试相关的重点知识点和实例,能够帮助读者更好地应对全国计算机等级考试二级的相关题目。 总体来说,全国计算机等级考试二级教程——java语言程序设计PDF是一本很好的学习工具,适合计算机等级考试二级的学习者使用。无论是想了解Java编程语言的基础知识,还是为计算机等级考试二级做准备,这本教程都能够提供相应的帮助。 ### 回答2: 《全国计算机等级考试二级教程——Java语言程序设计PDF》是一本关于Java语言程序设计的考试教材。该书内容分为几个主要部分: 首先,该书从Java语言的基础知识入手,介绍了Java的背景和特点,以及Java的安装与配置。 其次,该书详细讲解了Java程序的编写与运行。从编写一个简单的Hello World程序开始,逐步引导读者学习Java的语法规则、基本数据类型、运算符以及控制结构等。 然后,该书介绍了一些常用的Java类库和API,如String类、Math类、Scanner类等,以及Java的面向对象编程思想和相关的概念,如类、对象、继承、封装、多态等。同时,还涉及到实例变量、类变量、方法的定义和使用等内容。 最后,该书还对异常处理、文件操作、线程编程Java高级特性进行了简要介绍,使读者能够初步了解这些内容。 此外,该书还通过提供大量的例题和练习题,帮助读者巩固所学知识,培养解决实际问题的能力。 总结来说,这本教材是辅助学习者准备全国计算机二级考试的理想参考书籍。它详细介绍了Java语言的基础知识和应用,适合初学者入门。读者通过学习这本教材,可以系统地掌握Java语言的基本语法、面向对象编程以及高级特性,为考试做好充分准备。 ### 回答3: 全国计算机等级考试二级教程——Java语言程序设计 pdf 是一本关于Java编程语言的教材。Java作为一种高级编程语言,在计算机行业应用广泛,掌握Java编程可以使开发人员更好地进行软件开发和系统设计。 这本教材主要分为几个部分。首先,它介绍了Java编程语言的基本概念和语法规则,例如变量、数据类型、运算符、流程控制等。通过学习这些内容,读者可以了解Java的基本特点和编程规范。 其次,教材详细介绍了Java的面向对象编程(OOP)思想和相关的知识。面向对象编程是现代软件开发的一种重要方法,它通过封装、继承和多态等机制,使得程序更易读、易维护、易扩展。读者将学习如何定义类、创建对象、定义方法和属性等。 此外,教材还介绍了Java常用的类库和API,包括输入输出流、字符串处理、异常处理、图形界面等。这些类库和API提供了大量的功能和工具,可以帮助开发人员更加高效地编写程序。 在教材的最后,还有一些实例和练习题供读者巩固所学知识。通过实际的编程实例和练习,读者可以提高自己的编程能力和解决问题的能力。 总之,全国计算机等级考试二级教程——Java语言程序设计 pdf 是一本很好的学习资料,对于想要学习Java编程的人来说,是一本不可或缺的参考书。通过学习这本教材,读者可以系统地了解和掌握Java编程的基础知识和技能,为将来的职业发展打下良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值