Java GUI 开发

article/2025/11/1 6:08:37

Swing图形用户界面

GUI

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


Swing

Swing是JAVA的一个GUI工具包,是java基础类的一部分,包括了图形用户界面器件。

JFrame 窗口

JPanel 容器

JLabel 标签

JTextField 单行文本

JCheckBox 复选框

JButton 按钮

JComboBox 下拉列表


JFrame


构造方法

  • JFrame()构造一个最初不可见的新框架。
  • JFrame(String title)创建一个新的,最初不可见的 Frame与指定的标题。

可以自定义一个子类继承JFrame,根据自己的需求设计窗口

例如:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;public class jframe {public static void main(String[] args) {JFrame myframe = new Myframe("hello");//关闭窗口时结束程序myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myframe.setSize(400,300);//设置窗口大小myframe.setVisible(true);//设置窗口可视}
}class Myframe extends JFrame{public Myframe(String title){super(title);}
}

方法

  • JFrame frame = new JFrame();
  • frame.setSize(int width,int height);//设置窗口大小;
  • frame.setVisible(boolean b);//设置窗口是否可见;
  • frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口时结束程序;
  • frame.setLocation(int x,int y);//设置窗口的位置

容器和控件


JPanel 容器,也称为面板,控件都放在JPanel中

JButton 按钮控件

class MyFrame01 extends JFrame{public MyFrame01(String title){super(title);//添加一个容器,用来存放控件JPanel jPanel = new JPanel();//将容器放入窗口this.setContentPane(jPanel);//定义一个按钮控件JButton jButton01 = new JButton("OK");//将控件加入容器jPanel.add(jButton01);}
}

效果图

在这里插入图片描述

设置点击按钮反应

构造一个监听器对象,通过添加一个内部类设置按钮反应,也可以使用Lambda表达式

//点击按钮反应jButton01.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//可以在此处添加反应System.out.println("**点击OK按钮**");}});
//Lambda表达式
jButton01.addActionListener((e)->{System.out.println("**点击OK按钮**");});

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

JLabel


标签控件

//添加一个标签控件JLabel jLabel = new JLabel("你好");//将控件加入容器jPanel.add(jLabel);

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VJ998huG-1667894569758)(Swing%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%204b5b5ccd4aed45ccba385d8535ad43b0/Untitled%202.png)]

标签的内容是可以自己设置的

//设置标签的内容
jLabel.setText("Hello world!");
//设置标签字体
jLabel.setFont(new Font("楷体",Font.BOLD,20));
//设置前景色
jLabel.setForeground(new Color(255,0,0));

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2iMDT9e7-1667894569759)(Swing%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%204b5b5ccd4aed45ccba385d8535ad43b0/Untitled%203.png)]


JTextField


单行文本控件,可以设置一个单行的文本文件,可以用来输入内容,例如,登录窗口输入密码

//添加单行文本控件,可以在new的时候输入一个参数,设置文本长度JTextField jTextField = new JTextField(20);//将控件加入容器jPanel.add(jTextField);

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6uRzFu3f-1667894569761)(Swing%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%204b5b5ccd4aed45ccba385d8535ad43b0/Untitled%204.png)]

也可以在建立控件的时候设置初始文本,传入两个参数,第一个是文本内容,第二个是文本框长度

  • JTextField jTextField = new JTextField("Hello world!",20);

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pwVG8wbM-1667894569761)(Swing%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%204b5b5ccd4aed45ccba385d8535ad43b0/Untitled%205.png)]


JCheckBox


添加复选框控件

JCheckBox jCheckBox = new JCheckBox("同意用户协议");
jPanel.add(jCheckBox);

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s5I36qVz-1667894569762)(Swing%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%204b5b5ccd4aed45ccba385d8535ad43b0/Untitled%206.png)]

初始状态也可以设置为选中状态

  • jCheckBox.setSelected(true);

JComboBox


下拉列表控件,JComboBox是一个泛型

//添加一个下拉列表控件,设置列表内容为String类型
JComboBox <String >jComboBox = new JComboBox<>();
//添加列表内容
jComboBox.addItem("红色");
jComboBox.addItem("蓝色");
jComboBox.addItem("绿色");
jPanel.add(jComboBox);

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dwVZaCuB-1667894569763)(Swing%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%204b5b5ccd4aed45ccba385d8535ad43b0/Untitled%207.png)]

RGB颜色


(0~255)

例如:(255,255,255)白色

(0,0,0)黑色

(255,0,0)红色

Color类表示一个颜色

new Color(255,255,255);

RGBA

A代表透明度(0~255)

public class Mycontrol extends JPanel {protected void paintComponent(Graphics g){super.paintComponent(g);//控件像素大小int width = this.getWidth();int height = this.getHeight();//控件颜色g.setColor(new Color(255,0,0,125));g.fillRect(0,0,width,height);//控件填充}
}

布局器


布局器是GUI开发中很重的一个东西,可以设置控件的布局,默认条件下,布局器使用的是流式布局器,从左到右,从上到下,依次排列控件。

布局器也可以自己定义一个,根据自己的需要设置布局

定义一个类继承LayoutManager2接口,重写方法 layoutContainer(Container parent)即可实现自定义布局

坐标

左上角为(0,0)向右为x轴,向下为y

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mUhab5mR-1667894569763)(Swing%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%204b5b5ccd4aed45ccba385d8535ad43b0/Untitled%208.png)]

例如:

class Layout1 implements LayoutManager2{@Overridepublic void addLayoutComponent(Component comp, Object constraints) {}@Overridepublic Dimension maximumLayoutSize(Container target) {return null;}@Overridepublic float getLayoutAlignmentX(Container target) {return 0;}@Overridepublic float getLayoutAlignmentY(Container target) {return 0;}@Overridepublic void invalidateLayout(Container target) {}@Overridepublic void addLayoutComponent(String name, Component comp) {}@Overridepublic void removeLayoutComponent(Component comp) {}@Overridepublic Dimension preferredLayoutSize(Container parent) {return null;}@Overridepublic Dimension minimumLayoutSize(Container parent) {return null;}@Overridepublic void layoutContainer(Container parent) {//获取窗口宽度和高度int height = parent.getHeight();int width = parent.getWidth();//定义一个数组接受控件Component []child = parent.getComponents();int x = 0,y = 10;for(int i = 0;i < child.length;i++){Component c= child[i];//设置控件位置和大小c.setBounds(x,y,100,50);//设置完一个控件像素右移100像素x = x+101;if(x+100>=width){//超过窗口宽度换行x = 0;y = y+100;}}}
}

结语

以上内容只是一些介绍,GUI开发的容器和控件还有好多方法,具体可以查看API文档。


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

相关文章

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的概念&#xff1a; GUI&#xff08;Graphical User Interface&#xff09;即图形用户界面&#xff0c;它能够使应用程序看上去更加友好&#xff1b; 2.Swing概述&#xff1a; Swing是纯Java组件&#xff0c;使得应用程序在不同的平台上运行时具有相同外观和相同的行…

GUI(java)

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

Java中的GUI

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

Java之GUI简单介绍

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

JAVA GUI(图形用户界面)

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

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

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

Java GUI——Java图形用户界面

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

APIGateway 简介

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

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

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

【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&#xff0c;加油 一、基本介绍 Amazon AP…

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

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

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

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

AWS Lambda 搭配 Amazon API Gateway (REST API)

AWS Lambda 搭配 Amazon API Gateway (REST API) AWS Lambda 是一种无伺服器、事件推动的运算服务&#xff0c;而 Amazon API Gateway 可以让开发人员轻松地建立、发布、维护、监控和保护任何规模的 API&#xff0c;使用 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&#xff0c;通过 Private Integration、Private API 来完成私有网络环境下的跨账号或跨网络的 API 集成。API 管理平台会被设计在单独的账号中(亚马逊云科技提供的是多租户的环境)&#xff0c;因为客观上不同业务…

AWS Lambda 搭配 Amazon API Gateway (HTTP API)

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

AWS API gateway api CORS错误处理方法

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

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

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

AWS——API Gateway

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