GUI (java)

article/2025/11/1 6:17:26

GUI

  • 一.GUI概念
  • 二.Swing概述
  • 三.容器组件
  • 四.常用容器
    • 1.窗体
      • (1) JFrame类的构造方法
      • (2) JFrame类的常用方法
    • 2.面板
      • (1)JPanel类的构造方法
      • (2)JPanel类的常用方法
  • 五.布局管理器
    • 1. FlowLayout 流式布局
      • (1)FlowLayout构造方法
    • 2.BorderLayout 边界布局
    • 3.GridLayout 网格布局
  • 六.常用组件
    • 1.标签(JLabel)
      • (1)JLabel的构造方法
      • (2)JLabel的常用方法
    • 2.单行文本(JTextField)
      • (1)JTextField的构造方法
      • (2)JTextFiled的常用方法
    • 3.多行文本框(JTextArea)
      • (1)JTextArea的构造方法
      • (2)JTextArea的常用方法
    • 4.密码框(JPasswordField)
      • 1.JPasswordField的构造方法
      • 2.JPasswordField的常用方法
    • 5.按钮(JButton)
      • 1.JButton的构造方法
      • 2.JButton的常用方法
    • 6.菜单栏组件
      • 1.菜单栏的构造方法
      • 2.菜单栏的普通方法
    • 7.菜单组件
      • 1.菜单的构造方法
      • 2.菜单的普通方法
    • 8.菜单项组件
      • 1.菜单项的构造方法
  • 七.效果展示
  • 八.事件处理
  • 九.对话框
    • 1.JOptionPane对话框
      • (1)showMessageDialog() 消息对话框
      • (2)showConfirmDialog() 确认对话框

一.GUI概念

GUI(Graphical User Interface)即图形用户界面,它能够使应用程序看上去更加友好

二.Swing概述

Swing是纯Java组件,使得应用程序在不同的平台上运行时具有相同外观和相同的行为。
Swing中的大部分组件类位于javax.swing包中.
Swing中的组件非常丰富,支持很多功能强大的组件
关于GUI组件的类都在Swing包里

三.容器组件

Java的图形用户界面的基本组成部分是组件,组件是一个以图形化的方式显示在屏幕上并能与用户进行交互的对象;

组件不能独立地显示出来,必须将组件放在一定的容器(container)中才
可以显示出来。

容器可以容纳多个组件,通过调用容器的add(Component comp)方法
向容器中添加组件。窗口(Frame)和面板(Panel)是最常用的两个容器。

四.常用容器

1.窗体

在java中提供JFrame类,用于在Swing程序中创建窗体

(1) JFrame类的构造方法

构造方法说明
JFrame()创建新窗体,该窗体初始化为不可见
JFrame(String title)创建新窗体,使用参数title指定标题,该窗体初始化为不可见

(2) JFrame类的常用方法

常用方法说明
void setSize(int width, int height)设置窗体大小,可以指定宽度和高度
void setVisible(boolean b)设置窗体为可见的或者不可见,默认不可见
void setTitle(String title)设置窗体标题
void setResizable(boolean resizable)设置窗体是否可以被拉长,默认为可以
void setLocation(int x,int y)设置窗体相对坐标原点的位置,默认为(0,0)左上角
void setLocationRelativeTo(null)使窗体位于屏幕正中间
void setDefaultCloseOperation(int operation)设置窗体关闭时程序的状态
void dispose()销毁当前窗体

2.面板

java中的Jpanel类,为我们提供了面板,因为我们有了窗体只是空架子,并不能在窗体上设置各种组件,而是在面板上,所以我们再创建一个窗体后紧接着要创建一个面板,在面板上设置各种组件

(1)JPanel类的构造方法

构造方法说明
JPanel()创建一个空面板,默认为流式布局
JPanel(LayoutManaer layout)创建带有指定布局的面板

(2)JPanel类的常用方法

常用方法说明
void setBackground(Color bg)设置面板的背景色,由参数bg指定颜色
void setLayout(LayoutManager mgr)设置面板的布局,参数是布局管理器
Component add(Component comp)往面板中添加一个组件

五.布局管理器

布局管理器就是在面板上布局组件时的格式,java中常用的布局管理器有三种,分别是FlowLayout(流式布局),BorderLayout(边界布局),GridLayout(网格布局)

1. FlowLayout 流式布局

FlowLayout布局管理器是流式布局管理器,它将组件按照从左到右、从上到下的顺序来安排,并在默认情况下使组件尽量居中放置。
在这里插入图片描述

(1)FlowLayout构造方法

构造方法说明
FlowLayout(FlowLayout.RIGHT,int hgap,int vgap)右对齐,设置水平组件距离和垂直组件距离
FlowLayout(FlowLayout.LEFT)左对齐,水平和垂直距离为默认值5
FlowLayout()组件默认为居中,水平和垂直距离为默认值5

2.BorderLayout 边界布局

BorderLayout布局只允许在容器内设置5个组件,这5个组件的位置是由BorderLayout类中的North、South、East、West和Center5个常量来确定的,他们对应着容器中的上下左右中,用法如下

this.add(new Button(“按钮”) ,BorderLayout.NORTH)
this.add(new Button(“按钮”) ,BorderLayout.CENTER)
this指的是当前面板,加入的可以是任意组件,不一定是按钮,也可以是一个面板

组件在BorderLayout中的大小都是可以改变的。一般情况下可以让中间区域大一些,而且可以只用其中几个区域

BorderLayout将整个容器的布局划分成东(EAST)西(WEST)南(SOUTH)北(NORTH)中
(CENTER)五个区域,组件只能被添加到指定的区域

如不指定组件的加入部位,则默认加入到CENTER区

每个区域只能加入一个组件,如加入多个,则先前加入的会被覆盖

BorderLayout型布局容器尺寸缩放原则:
北、南两个区域在水平方向缩放
东、西两个区域在垂直方向缩放
中部可在两个方向上缩放
在这里插入图片描述

3.GridLayout 网格布局

GridLayout布局管理器是矩形网格,在网格中放置组件,每个网格的高度和宽度都相等,组件随着网格的大小而在水平和垂直方向上拉伸,网格的大小是由容器的大小和创建网格的多少来确定的。其用法如下

this.setLayout(new GridLayout(2 , 3)); //创建一个2行3列的网格
this.add(new Button(“按钮"))

当组件数目大于网格数时,GridLayout保持行数不变而自动增加列数。

GridLayout型布局管理器将空间划分成规则的矩形网格,每个单元格区域大小相等。组件被添加到每个单元格中,先从左到右添满一行后换行,再从上到下。

在 GridLayout 构造方法中指定分割的行数和列数
在这里插入图片描述

六.常用组件

1.标签(JLabel)

标签分为文本标签和图片标签,顾名思义是用来在面板上增加文字或图片信息.

在这里插入图片描述

(1)JLabel的构造方法

构造方法说明
JLabel()创建一个标签
JLabel(String text)创建一个带文本的标签
JLabel(Icon image)创建一个图像的标签

(2)JLabel的常用方法

常用方法说明
void setText(String text)设置标签上的文本
String getText()获得标签上的文本
setFont(new Font(“宋体”,Font.BOLD, 18))设置字体

2.单行文本(JTextField)

用来输入单行文本的文本框,不能输入回车
在这里插入图片描述

(1)JTextField的构造方法

构造方法说明
JTextField()创建一个空白文本框如上图
JTextField(String text)创建一个带内容的文本框
JTextField(String text, int columns创建一个带内容,并且指定列数的单行文本框

(2)JTextFiled的常用方法

常用方法说明
void setText(String text)设置文本框中的文本
String getText()获得文本框中的文本
void setEditable(boolean b)设置文本框是否可以编辑,默认可以编辑
setColumns(20);设置列数

3.多行文本框(JTextArea)

用来输入多行文本,可以输入回车换行

(1)JTextArea的构造方法

构造方法说明
JTextArea()创建一个空的文本域
JTextArea(String text)用指定文本初始化文本域
JTextArea(int rows, int columns)创建一个指定行数和列数的空文本域
JTextArea(String text,int rows, int columns)创建一个带文本,并指行数和列数的空文本域

(2)JTextArea的常用方法

常用方法说明
void setText(String text)设置文本域中的文本
String getText()获得文本域中的文本
void setFont(Font font)设置文本域中文本的字体
void setLineWrap(boolean wrap)是否自动换行,默认false

如果需要文本区自动出现滚动条,可将文本区对象放入滚动窗格(JScrollPane)中

JScrollPane scrollPane = new JScrollPane(txtArea);

add(scrollPane );

4.密码框(JPasswordField)

用于输入密码时不可见

1.JPasswordField的构造方法

构造方法说明
JPasswordField()创建一个空的密码框
JPasswordField(String text)创建一个带文本的密码框
JPasswordField(String text, int columns)创建一个带文本的密码框,并且可以规定列数

2.JPasswordField的常用方法

常用方法说明
char [] getPassword()获得密码框中的文本,存放在char数组中

5.按钮(JButton)

设置按钮组件

1.JButton的构造方法

构造方法说明
JButton(String text)创建一个带文本标签的按钮
JButton(Icon image)创建一个带图像标签的按钮

2.JButton的常用方法

常用方法说明
void setBackground(Color bg)设置按钮的背景色
void setEnabled(boolean b)设置启用(或禁用按钮),由参数b决定
void setToolTipText(String text)设置按钮的悬停提示信息

6.菜单栏组件

给面板上添加一些菜单栏

1.菜单栏的构造方法

构造方法说明
JMenuBar()创建一个菜单栏对象

2.菜单栏的普通方法

普通方法说明
add(menu)向菜单栏中添加菜单
setJMenuBar(menuBar)将菜单栏添加到窗口,这个方法要用窗体对象调用

7.菜单组件

1.菜单的构造方法

构造方法说明
JMenu(“菜单名称")创建一个菜单对象

2.菜单的普通方法

普通方法说明
add(menuItem)向菜单中添加菜单选项

8.菜单项组件

1.菜单项的构造方法

构造方法说明
JMenuItem(“菜单项名称");创建一个菜单项对象

七.效果展示

在这里插入图片描述
在这里插入图片描述

八.事件处理

我们在上面虽然做出了页面,但只是空壳子,点按钮不会触发任何效果,要想有效果,就要对事件源进行监视,从而进行相应的行为.

什么是事件源?
就是任何一个组件对象,要想让该组件对象做出响应,就要用监听器去监听

如何产生监听器?
每一个事件源都有一个addActionListener()方法,这个方法要给里面传入一个匿名内部类,即new ActionListen()对象,但 ActionListen()是一个接口,我们知道接口不能直接产生对象,正确的做法是新写一个类,让该类实现接口的方法,才生成该类对象,但这样做太麻烦,java引入了匿名内部类,new ActionListen()其实是new了一个没有名字的内部类,完整的代码如下

事件源对象.addActionListener(new ActionListener() {
// 事件处理
@Override
public void actionPerformed(ActionEvent e) {
//执行操作
}
});

这样就可以在点击相关组件从而产生对应的事件了
在这里插入图片描述

九.对话框

对话框就是在事件处理时,和用户进行交互的对话框,分为消息对话框和确认对话框

1.JOptionPane对话框

(1)showMessageDialog() 消息对话框

消息对话框一般用于提示用户出现了什么问题或错误

主要有五种消息类型,类型不同,图标不同:
ERROR_MESSAGE 错误消息提示
INFORMATION_MESSAGE 信息提示
WARNING_MESSAGE 警告提示
QUESTION_MESSAGE 问题提示
PLAIN_MESSAGE 简洁提示

如上述的账号密码为空就是警告提示

(2)showConfirmDialog() 确认对话框

确认对话框一般用于确认对象目前的操作是否继续往下执行

主要有四种消息类型,类型不同,图标不同:
DEFAULT_OPTION 默认选项
YES_NO_OPTION 是/否选项
YES_NO_CANCEL_OPTION 是/否/取消选项
OK_CANCEL_OPTION 确定/取消

在这里插入图片描述
这就是一个OK_CANCEL_OPTION 确定/取消,确认/取消对话框


http://chatgpt.dhexx.cn/article/f6n9iNFH.shtml

相关文章

javaGUI

GUI 1.GUI的概念: GUI(Graphical User Interface)即图形用户界面,它能够使应用程序看上去更加友好; 2.Swing概述: Swing是纯Java组件,使得应用程序在不同的平台上运行时具有相同外观和相同的行…

GUI(java)

GUI基本介绍: 1.GUI是什么? GUI的全称为Graphical User Interface,图形化界面或图形用户接口,是指采用图形方式显示 的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简 便易用。…

Java中的GUI

记录Java中的GUI知识,Java中的GUI相关编程思想是需要我们去理解和掌握的。最好可以使用基础的swing组件去构建出界面。完整记录使用swing组件进行登录页面开发,提供完整代码 文章目录 前言一、swing组件二、swing组件的使用1.窗口2.面板 三、swing组件的…

Java之GUI简单介绍

GUI介绍(一)常见的组件及简单监听器 第一个窗口程序容器控件JLabel控件简单事件处理文本框JTextFiled复选框JCheckBox下拉列表JComboBox布局管理器LayoutManager边界布局管理器BorderLayout手工布局 前段时间学了GUI,总体上概念还是有点模糊&…

JAVA GUI(图形用户界面)

1.GUI概述 目前,我们编写的程序都是基于控制台的程序GUI(Graphical User Interface)即图形用户界面,它能够使应用程序看上去更加友好 2.Swing概念 位于javax.swingSwing是纯java组件,使得应用在不同平台中有相同的外观和行为 3.什么是组件,…

Java——GUI(图形用户界面)

学习目标: 1、掌握布局管理器、AWT事件处理机制以及常用事件 2、熟悉Swing组件的使用 3、了解GUI开发的相关原理和技巧 GUI全称是GraphicalUser Interface,即图形用户界面。顾名思义,就是应用程序提供给用户操作的图形界面,包括…

Java GUI——Java图形用户界面

Java GUI——Java图形用户界面 1、Java GUI概述 1.1、GUI的前世今生 早期,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI)”。如:Windows中的DOS窗口。后来,Apple公司率先在电脑的操作系统中实现了图…

APIGateway 简介

1. APIGateway是什么 APIGateway 即API网关,所有请求首先会经过这个网关,然后到达后端服务,有点类似于Facade模式。API网关作为系统接口对外的统一出口,可以减少调用方对服务实现的感知。 没有API网关时的结系统构如下图&#xff…

aws api gateway 创建一个REST API作为Amazon S3代理

你可能想把样本API导入为Amazon S3的代理,如样本API作为Amazon S3代理的OpenAPI定义所示。关于如何使用OpenAPI定义导入API的说明,请参阅使用OpenAPI配置REST API。 创建API资源来代表Amazon S3资源 我们将使用API的根(/)资源作…

【AWS系列】第七讲: AWS Serverless之API Gateway

目录 序言 一、基本介绍 1.1 RESTful API 1.2 HTTP API 1.3 WebSocket API 2、使用介绍 2.1 新建 2.2 选类型 2.3 点击构建 2.4 输入参数 2.5 点击创建 2.6 新建方法 2.6 方法测试 三、总结 序言 初步研究一下API Gateway,加油 一、基本介绍 Amazon AP…

一文搞懂 Service Mesh 和 API Gateway 关系和区别

公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 关于Service Mesh和API Gateway之间的关系,这个问题过去两年间经常被问起,社区也有不少文章和资料给出解答。其中不乏 Christian Posta 这样的网红给出过深度…

aws api gateway 构建一个私有的REST API

你将创建一个私有的REST API。客户只能从你的亚马逊VPC内访问该API。该API与公共互联网隔离,这是一个常见的安全要求。 首先,你使用AWS CloudFormation模板来创建一个亚马逊VPC、一个VPC端点、一个AWS Lambda函数,并启动一个亚马逊EC2实例&am…

AWS Lambda 搭配 Amazon API Gateway (REST API)

AWS Lambda 搭配 Amazon API Gateway (REST API) AWS Lambda 是一种无伺服器、事件推动的运算服务,而 Amazon API Gateway 可以让开发人员轻松地建立、发布、维护、监控和保护任何规模的 API,使用 API Gateway 可以建立 RESTful API 和 WebSocket API&a…

AWS API Gateway与AWS Lambda代理集成构建REST API

项目地址 https://github.com/JessicaWin/aws lambda分支为自动创建API Gateway REST API资源的部署方式apigateway分支为自定义API Gateway REST API资源的部署方式 创建Lambda Handler 创建父模块 使用idea创建一个maven工程: File->New->Project 在左侧菜单栏中…

基于 Amazon API Gateway 的跨账号跨网络的私有 API 集成

一、背景介绍 本文主要讨论的问题是在使用 Amazon API Gateway,通过 Private Integration、Private API 来完成私有网络环境下的跨账号或跨网络的 API 集成。API 管理平台会被设计在单独的账号中(亚马逊云科技提供的是多租户的环境),因为客观上不同业务…

AWS Lambda 搭配 Amazon API Gateway (HTTP API)

AWS Lambda 搭配 Amazon API Gateway (HTTP API) AWS Lambda 是一种无伺服器、事件推动的运算服务,而 Amazon API Gateway 可以让开发人员轻松地建立、发布、维护、监控和保护任何规模的 API,使用 API Gateway 可以建立 RESTful API 和 WebSocket API&a…

AWS API gateway api CORS错误处理方法

我们开发了一个 AWS lambda 函数,然后我们使用 AWS API gateway服务将它上线。 我们已经测试 API 并验证它是否按照我们的预期工作,看起来真的很棒。 现在我们准备好将 API 端点发送到我们的前端并从网站调用它。 一旦我们这样做了,我们就…

API管理的正确姿势--API Gateway

转载本文需注明出处:微信公众号EAWorld,违者必究。 数字化生态,以创新客户体验为核心,所有我们身边能感知到的变化都来自于渐近的创新。这些创新需要试错,需要不断的升级,并且创新往往与我们熟知的功能分离…

AWS——API Gateway

文章目录 APIHTTP API构建操作*路由*授权集成部署——阶段 REST API构建操作*资源*阶段授权方 自定义域名ACM证书?API 映射 VPC链接REST APIHTTP API子网?安全组? API 选择创建API的类型时,创建的是对公访问的gateway方式&#x…

使用AWS的API Gateway实现websocket

问题 最近业务上面需要使用到WebSocket长连接来解决某些业务场景。 一图胜千言 注意:这里承担WebSocket服务器的是AWS API Gateway;后面的EC2业务服务,其实都是REST接口服务。 这里主要关注API Gateway和REST业务服务怎么实现API Gateway要…