Java--GUI编程

article/2025/11/1 6:04:49

目录

GUI的概念

Swing概述

​编辑

容器组件

布局管理器

常用组件

对话框

内部类


GUI的概念

GUI(Graphics User Interface),图形用户界面,是指采用图形方式显示的计算机操作用户界面,是计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。它能够使应用程序看上去更加友好

Swing概述

 * JFrame           窗口
* JPanel           面板(流式布局,边界布局,网格布局)
* JTextFiled       单行文本输入框
* JLable           标签
* JPasswordFiled   密码框组件
* JTextArea        多行文本输入框
* JScrollPane      滚动面板

容器组件

组件是一个以图形化的方式显示在屏幕上能够与用户进行交互的对象,不能独立显示,必须放在一定的容器中。

容器可容纳多个组件,用add方法添加组件进容器

窗口Frame和面板Panel是最常用的容器

JFrame(框架)

用于在Swing中创建窗体

通过get()方法就可以获得此框架的内容面板

或者自己创建一个JPanel面板对象,把它作为一个组件加到容器中

public class Demo1JFrame extends JFrame {public Demo1JFrame() throws HeadlessException {this.setSize(500, 300);//设置窗口的大小this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口选项// this.setLocation(450,500);//位置坐标this.setResizable(false);//禁止设置窗口大小this.setLocationRelativeTo(null);//相对位置 水平垂直居中this.setTitle("欢迎登录");//窗口标题      this.setVisible(true);//显示窗口this.dispose();//关闭窗口}public static void main(String[] args) {Demo1JFrame d = new Demo1JFrame();}
}

JPanel(面板)

提供面板,是轻量级别的容器,一般使用面板来实现布局嵌套

 //面板,可以看成是一个空间,但不能单独存在//流式布局JPanel jp = new JPanel();//默认是流式布局jp.setBackground(PINK);//设置背景颜色jp.setLayout();//设置页面布局this.add(jp);//将面板加入JFramethis.setVisible(true);//显示窗口
菜单组件JMenuBar();//创建菜单JMenu();//菜单名称
JMenuItem();//菜单项名称
setJMenuBar(menuBar);//将菜单栏添加到窗口

布局管理器

每个Jpanel 都有一个布局管理器

常用的布局管理器:流式布局,边界布局BorderLayout和网格布局GridLayout

 //面板,可以看成是一个空间,但不能单独存在//流式布局JPanel jp = new JPanel();//默认是流式布局jp.setBackground(PINK);//设置背景颜色this.add(jp);//将面板加入JFramethis.setVisible(true);//显示窗口JButton jb = new JButton("登录");jp.add(jb);JPanel jp = new JPanel(new BorderLayout());//边界布局JButton jb1 = new JButton("登录1");JButton jb2 = new JButton("登录2");JButton jb3 = new JButton("登录3");jp.add(jb1, BorderLayout.EAST);jp.add(jb2, BorderLayout.SOUTH);jp.add(jb3);this.add(jp);this.setVisible(true);//显示窗口JPanel jp = new JPanel(new GridLayout(2, 2));//网格布局JButton jb1 = new JButton("登录1");JButton jb2 = new JButton("登录2");JButton jb3 = new JButton("登录3");JButton jb4 = new JButton("登录4");jp.add(jb1);jp.add(jb2);jp.add(jb3);jp.add(jb4);this.add(jp);

常用组件

JLabel(标签)

 JLabel label = new JLabel("账号");label.setForeground(Color.PINK);//设置背景颜色label.setFont(new Font("宋体", Font.BOLD, 20));//设置字体

JTextField(单行文本)

 JTextField accountText = new JTextField(15);accountText.setText("你好");

JTextArea(多行文本框)

 JTextArea ja=new JTextArea(5,15);ja.setLineWrap(true);//自动换行

JScrollPane(滚动条)

JScrollPane js=new JScrollPane(ja);//滚动条
jp.add(js);

JPasswordField(密码框)

 JPasswordField passwordField=new JPasswordField(15);passwordPanel.add(passwordLabel);passwordLabel.add(passwordField);

JButton(按钮)

 JButton loginBtn=new JButton("登录");btnPanel.add(loginBtn);

菜单栏组件

  JMenuBar jMenuBar=new JMenuBar();d.setJMenuBar(jMenuBar);JMenu jm = new JMenu("菜单");jMenuBar.add(jm);JMenuItem ji = new JMenuItem("文件");JMenuItem ji1 = new JMenuItem("保存");jm.add(ji);jm.add(ji1);

事件处理

当我们点击一个按钮时,或者用键盘输入字符,或者是点击鼠标时,我们应该如何处理这个事件。

事件监听:

 jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String account = null;               }}

对话框

JOptionPane:

showMessageDialog(消息对话框)

消息类型:

     ERROR_MESSAGE                     错误消息提示
     INFORMATION_MESSAGE         信息提示
     WARNING_MESSAGE                 警告提示
     QUESTION_MESSAGE                问题提示
     PLAIN_MESSAGE                        简洁提示

showConfirmDialog(确认对话框)

     DEFAULT_OPTION                   默认选项   
     YES_NO_OPTION                    是/否选项
     YES_NO_CANCEL_OPTION   是/否/取消选项
     OK_CANCEL_OPTION             确定/取消

​jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String account = null;if (account.length() > 10) {JOptionPane.showMessageDialog(null, "你好", "就是你", JOptionPane.QUESTION_MESSAGE);int res = JOptionPane.showConfirmDialog(null, "小朋友", "很能吃", JOptionPane.YES_NO_OPTION);System.out.println(res);if (res == 0) {return;}}​

内部类

内部类是java对类的一种定义方式,是嵌套的一个分类。
非静态嵌套类(内部类)可访问其外围类的其他成员,即使这些成员被声明为私有的。
静态内部类,只能访问外部类中静态成员

内部类分为:

成员内部类   

public class Outer {int num = 10;public void eat() {new Inner();//一般在本类中使用内部类}//在一个类的内部定义的类称为内部类class Inner {public void test() {System.out.println(num);//在内部类中可以直接使用外部类中的成员}}
}

静态内部类   

 //静态内部类,只能访问外部类中静态成员
private static int num1=20;class Inner {public void test() {System.out.println(num1);}}public static void main(String[] args) {}
}

局部内部类   

jb.addActionListener(new ActionListener() {//将只在本类中使用的功能,定义在内部类中,实现封装,在哪儿使用,new内部类即可class MyAction implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("被点击了");System.out.println(accountText.getText());//使用外部类的成员}}

匿名内部类

 accountText.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("被点击了");System.out.println(accountText.getText());}});

内部类特点:

是独立的类

不能用普通的方式访问,内部可以自由访问外部类的成员变量

声明成静态的,就不能随便访问外部类的成员变量,只能访问外部类的静态成员变量

意义:

封装性

实现多继承


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

相关文章

GUI编程(java)

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

Java GUI 开发

Swing图形用户界面 GUI 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面,包括窗口、菜单、按钮等各种屏幕组件。 Swing Swing是JAVA的一个GUI工具包&a…

GUI (java)

GUI 一.GUI概念二.Swing概述三.容器组件四.常用容器1.窗体(1) JFrame类的构造方法(2) JFrame类的常用方法 2.面板(1)JPanel类的构造方法(2)JPanel类的常用方法 五.布局管理器1. FlowLayout 流式布局(1)FlowLayout构造方法 2.BorderLayout 边界布局3.GridLayout 网格布局 六.常用…

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 端点发送到我们的前端并从网站调用它。 一旦我们这样做了,我们就…