首页 > 编程语言 >浅谈-java GUI-基础理论

浅谈-java GUI-基础理论

时间:2022-08-31 17:45:08浏览次数:64  
标签:java 浅谈 int GUI public 窗体 事件 组件 void

GUI:Graphical User Interface(图形用户接口) 用图形的方式,用来显示计算机操作的界面

Java为GUI提供的API都存在java.awt和javax.Swing两个包中

  • java.awt 包:

    awt是这三个单词首字母的缩写,翻译过来是抽象窗口工具包,只不过这个包的API,需要调用本地系 统方法实现功能,和本地系统有关联,不利于代码移植,属重量级控件

  • javax.swing 包:

    它是在awt的基础上,建立的一套图形界面系统,提供了更多的组件,而且完全由Java实现。增强了移 植性,属轻量级控件 所以,我们做图形界面开发使用的是swing包下的类。

  • 这里出现了一个名词:组件。

    组件是具有图形表示的对象,该图形表示可以显示在屏幕上并且可以与用户交互 比如说,在用户登录中,文本框和按钮等,都是能够表示图形的对象,所以它们都称为组件。 最后,我们来说一下,我们会用到的常用组件

img

组件:

  • 基本组件:具有图形表示的对象

  • 容器组件:是可以添加组件的组件。也就是在容器中可以通过add方法添加组件,既可以添加基本组件,也可 以添加容器组件。

  1. JButton,这是按钮

  2. JLabel,这是用来显示文本内容的,或者展示图片使用

  3. JTextFile,这是文本框,用来输入内容的

  4. JTextArea,这是文本域,用来输入多行多列的数据的

接着,我们再来看容器组件:

面板也是一个容器,我们常用JPanel,后面用到在具体讲解 窗体,下面是Frame,这是awt包下,而我们使用的是JFrame,这是swing包下。 好了,GUI相关的基础知识我们就先讲到这里

初识窗体

JFrame:窗体(顶层窗体)

JFrame(); ---> 构造一个不可见的窗体

JFrame类的构造方法

构造方法 功能说明
public JFrame() 创建一个没有窗口标题的窗口框架
public JFrame(String title) 创建一个窗口标题为title的窗口框架

JFrame成员方法

方法 功能说明
public void setTitle(String title) 设置或修改框架的标题
public String getTitle() 返回框架的标题
public void setBackground(Color c) 设置框架的背景颜色
public MenuBar getMenuBar() 返回窗口中的菜单对象
public void setMenuBar(MenuBar mb) 设置窗口的菜单条
public void remove(MenuComponent mc) 从窗口删除给定的菜单项
public boolean isResizable() 判断窗口是否可以调节大小
public void setVisible(boolean b) 显示或隐藏窗体(取决于b的值-true为显示,-false为隐藏)
public void setLocationRelativeTo(component c) 设置窗体位置,null为屏幕中央
public void setAlawysOnTop(boolean c) 设置此窗口是否终究位于其他窗口之上
public void setDefaultCloseoperation(int operation) 设置窗体关闭时默认操作,3--为关闭时退出程序

窗体添加按钮

JButton(); 构造方法

JButton(String text); 创建一个带文本的按钮

JButton() 成员方法

void setSize(int w, int h); 设置按钮的宽高大小
void setLocation(int x, int y); 设置按钮的坐标
void setBounds(int x, int y, int w, int h); 上面两个方法的结合

和窗体相关操作

窗体对象.setLayout(null);------------> 取消窗体默认布局

**
**

窗体对象.add(按钮对象名) ------------------>把按钮加入窗体中

JLabel();显示文本或图像类

构造方法:

JLabel(String text); 创建指定的文本

添加图片时,不能直接加路径,直接使用字符串路径会识别成text文本


需要使用-----ImageIcon(String filename); 的构造方法

例子:

ImageIcon img = new ImageIcon("D\\img\\demo.png"); // 使用转义符\定义完整路径

JLabel jl = new JLabel(img);   // 将图片加入

成员方法:

与其按钮的成员方法

void setBounds(int x, int y, int width, int height):设置位置和大小

JTextField(); 文本输入框

构造方法

JTextField(String text); 文本输入框,有文本默认在输入框里显示

JPassowrdFIeld();密码输入框

构造方法:

JPassowrdFIeld(String text); 密码输入框,有文本默认在输入框里显示

成员方法

void getText(); 获取输入框文本内容

监听事件AcationEvent();

  1. 事件源:事件发生的地方。可以是按钮,窗体,图片等

  2. 事件:发生了什么事情。例如:鼠标点击事件,键盘按下事件等 事件绑定:把事件绑定到事件源上,当发生了某个事件,则触发对应的处理逻辑 事件源对象. addXXXListener(事件);

ActionEvent();构造方法----用于传递事件,为组件使用的addActionListener();方法接受此类事件的addActionListener()对象


要添加事件的对象名.addActionListener(new ActionListener() { // 这里使用的为匿名类写法

​                @override

​                public void cationPerformed(ActionEvent e){  // 重写该方法, 

​                      事件触发代码

​    
​                      }

});

低级事件

低级事件是指基于组件和容器的事件,当一个组件上发生特定动作,则触发了低级(组件)事件。

(1)ComponentEvent组件事件:组件尺寸变化、移动。

(2)ContainerEvent容器事件: 组件增加、移动。

(3)WindowEvent窗口事件: 包括用户点击了关闭按钮,窗口得到与失去焦点,窗口最小化等。

(4)FocusEvent焦点事件: 焦点的获得和丢失。

(5)KeyEvent键盘事件: 键按下、释放。

(6)MouseEvent鼠标事件: 包括鼠标按下,鼠标释放,鼠标点击等。

这里不一一列举了

高级事件(语义事件)

高级事件可以不和特定的动作相关联,该类事件具有一般性,取决于触发此事件的含义。

(1)ActionEvent动作事件:对应一个动作事件,它不代表一个特定的动作,而是一种一般性动作(语义)。如按钮按下、JTextField中按Enter键。

(2)AdjustmentEvent调节事件:在滚动条上移动滑块以调节数值。

(3)ItemEvent项目事件:选择项目,不选择“项目改变”。

(4)TextEvent文本事件:文本对象改变。

常用事件处理类

常用组件事件类主要包括:

  • 操作事件类ActionEvent

  • 选项事件类ItemEvent

  • 文本事件类TextEvent

  • 窗口事件类WindowEvent

  • 鼠标事件类MouseEvent

  • 按键事件类KeyEvent

事件处理类

事件源 产生事件的类类型
Button ActionEvent
Checkbox ActionEvent、ItemEvent
Component ComponentEvent、FocusEvent、KeyEvent、MouseEvent
MenuItem ActionEvent
Scrollbar AdjustmentEvent
TextField ActionEvent
TextArea ActionEvent
Window WindowEvent

img

更多的部分可以参考java手册

标签:java,浅谈,int,GUI,public,窗体,事件,组件,void
From: https://www.cnblogs.com/e-link/p/16643996.html

相关文章

  • JVM和java体系结构
    前言:JVM(JavaVirtualMachine)是java虚拟机,是java上层框架的基础,欲练神功,先练内功!JVM和java体系结构  一次编译,到处运行.跨平台   不同语言使用编译器......
  • LeaRun.Java工作流引擎 快速开发业务流程
    工作流引擎是用来开发工作流转的框架。作为应用系统的一部分,能根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案,包含组织结构、流程、节点、转向规则......
  • 4.Docker部署java项目测试
    FROMopenjdk:8u332-jdk-oraclelinux7WORKDIR/home/appEXPOSE8081COPYskywalking-agent//home/app/COPY*.jar/home/app/ENTRYPOINT["java","-javaagent","/ho......
  • Java easy_trans字典绑定,Java字典注解绑定
     ================================©Copyright蕃薯耀 2022-08-31https://www.cnblogs.com/fanshuyao/ 一、引入Maven依赖基于<mybatisPlus.version>3.4.3.3</my......
  • 小技巧:在VBA中查找SAP GUI Scripts 脚本对象层次结构视图
    SAPGUIScript提供了很多功能,单靠录脚本的方法去发现有点不太灵活,查SAP官方的网页也是一种可行的办法。下面介绍通过VBA直接在本地查看,方便快捷。安装好SAPGUI以后,在......
  • java实现kafka生产者消费者
    参考:https://blog.csdn.net/zhengzaifeidelushang/article/details/121984379深入浅出理解kafka原理系列之:java实现kafka消费者一、pom.xml引入kafka依赖二、kafka消费......
  • # JavaScript中的数组
    目录JavaScript中的数组数组的概念创建数组1.利用new创建数组2.利用数组字面量创建数组获取数组中的元素数组的索引数组遍历数组新增元素冒泡排序JavaScript中的数组数组......
  • java修饰符
    基本介绍:java提供了四种访问控制修饰符号,控制犯方法和属性(成员变量)的访问权限(范围)1、公开级别:用public修饰,绝对公开2、受保护级别:用protected修饰,对子类和同一个包中的......
  • Java15-File类、递归
    Java15【File类、递归】主要内容File类递归Lambda优化第一章File类1.1概述java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找......
  • IOS下无法获取到WebViewJavascriptBridge的问题排查
    问题描述在安卓下正常获取到WebViewJavascriptBridge,在IOS下一直无法获取到WebViewJavascriptBridge官网的示例如下:接手项目时已有的桥接代码:可以发现src不同,一个......