JavaGUI开发实践:登录界面模拟(连接数据库)

article/2025/10/31 22:55:07

文章目录

  • 1. 实现功能概要
  • 2. 功能界面概览
  • 3. 代码详解
    • (1)选择身份登录方法实现
    • (2)登录按钮的响应
  • 4. 全部代码示例
  • 5. 包的存放位置
  • 6. 项目全部代码下载地址:JavaGUI超市进销存管理系统 所有代码
  • 7. Java GUI其他相关博客

1. 实现功能概要

这里是第三部分,我们的登录界面,与数据库信息进行核对,在看下面内容之前,我们具体要实现以下登录界面功能:

  • 登录界面需要连接数据库账户信息并进行核对。
  • 用户出现用户名或者密码错误要进行相应的警告框提示。
  • 根据不同的用户等级,进入不同的界面。


针对 第三个功能:
例如,用户身份是老板界面,那就进入老板管理界面,如果是普通员工,那就进入普通员工的界面。
我们把超级管理员,销售员,仓库管理员,销售员这四个身份分别建立单独的表。然后检索JComboBox组件的Item名,来进入不同的数据库,核对账户密码。

2. 功能界面概览

现展示JComboBox控件。

在这里插入图片描述
用户进入登录界面以后,先选择用户属性,然后输入用户名和密码后,进入相应管理界面。
不好意思各位,忘记改了,上面的“注册“按钮实际实现的是退出功能。
后面的登录界面中的”注册”按钮实际上都是退出。

1)用户登录界面,用JComboBox控件实现对不同用户的管理。
账户登录,注意是连接了数据库,用户密码都输入正确以后提示,然后进入下一个超级管理员的界面
登录成功后随即进入超级管理员界面。(界面就凑合看吧,我就是做了个简单的实例。)
在这里插入图片描述
我们再来个采购员的登录实示例,其他身份的用户其实都一样的。
在这里插入图片描述
点击“确定”后,用户进入采购员界面了。
在这里插入图片描述
我这里就放了两个示例,接下来我会细细分析我的代码部分。尽量讲的详细点。

3. 代码详解

首先我们这个界面中,我们要用到的控件以及获得文本的方法如下:

控件名称获取控件的文本方法
ComboBox(下拉单) getSelectedItem.toString().equals("ComboBox中addItem()方法中的内容");
JTextField 文本框 getText()
JPasswordField 密码文本框 getText() (使用时提示被弃用,但是可用)
Button --
Font 文本样式设计 --
JOptionPane 对话框技术 --

主要的就是一以上几个控件。实现很简单。
这里我就不一一介绍控件了,我们主要讲登录功能实现和根据不同用户登录不同界面的功能实现方法。

(1)选择身份登录方法实现

登录
连接数据库代码:下面的代码很长,但是不要慌,只是因为里面用户不同的身份有4个,每个都要检验用户名和密码。
我为四个身份用户分别建立了四个表,掌管不同的身份用户信息,所以下面每种身份用户都会进行一次数据库查询。此外,用户身份验证和核对,封装在check函数
在这里插入图片描述

再强调一点,获取JComboBox中Item方法是:

 jc1.getSelectedItem.toString().equals("");

euquals里面的参数是你之前给JComboBox里面addItem里面的String值:“超级管理员”,“”采购员“之类的
在这里插入图片描述
现在我们看一下JCoboBox是如何核对账户信息和密码的:

if (jc1.getSelectedItem().toString().equals("超级管理员")) {		//当用户选择“超级管理员”身份登录时String sql = "select * from denglu " + "where zhanghao = '" + name + "' and mima = '"	//查询"denglu"的sql表格中用户信息。+ password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name) && rs.getString("mima").equals(password)) {	//如果用户输入的用户名和密码都和数据库中信息对得上。result = true;		//返回true} else {System.out.println(rs.getString("zhanghao").equals(name));System.out.println(rs.getString("mima").equals(password));return false;}}} 

具体代码如下:

 public boolean check(String name, String password) {try {Class.forName("com.mysql.cj.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}boolean result = false;try {String url = "jdbc:mysql://localhost:3306/supermarket?serverTimezone=CTT";// 注意设置时区,这个连接是8.0版本的mysql。String username = "root";String passwords = "Yuanfeng200517";Connection c = DriverManager.getConnection(url, username, passwords);if (c != null) {System.out.println("数据库连接成功!");} else {System.out.println("数据库连接失败!");}Statement s = c.createStatement();//上面的是为了建立数据而做驱动准备以及连接测试。if (jc1.getSelectedItem().toString().equals("超级管理员")) {        //当用户选择“超级管理员”身份登录时String sql = "select * from denglu " + "where zhanghao = '" + name + "' and mima = '"    //查询"denglu"的sql表格中用户信息。+ password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name) && rs.getString("mima").equals(password)) {    //如果用户输入的用户名和密码都和数据库中信息对得上。result = true;        //返回true} else {System.out.println(rs.getString("zhanghao").equals(name));System.out.println(rs.getString("mima").equals(password));return false;}}} else {if (jc1.getSelectedItem().toString().equals("供应商")) {        //当用户选择“供应商”身份登录时String sql = "select * from denglu2 " + "where zhanghao = '" + name + "' and mima = '"+ password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name)&& rs.getString("mima").equals(password)) {result = true; // 如果用户名和密码都正确,那么就将result返回为true;} else {return false;}}}if (jc1.getSelectedItem().toString().equals("采购员")) {String sql = "select * from denglu_purchase " + "where zhanghao = '" + name+ "' and mima = '" + password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name)&& rs.getString("mima").equals(password)) {result = true; // 如果用户名和密码都正确,那么就将result返回为true;} elsereturn false;}}/****************** 销售员 ********************/if (jc1.getSelectedItem().toString().equals("销售员")) {String sql = "select * from denglu_sell " + "where zhanghao = '" + name+ "' and mima = '" + password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name)&& rs.getString("mima").equals(password)) {result = true; // 如果用户名和密码都正确,那么就将result返回为true;} elsereturn false;}}/****************** 仓库管理员 ********************/if (jc1.getSelectedItem().toString().equals("仓库管理员")) {String sql = "select * from denglu_warehouse " + "where zhanghao = '" + name+ "' and mima = '" + password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name)&& rs.getString("mima").equals(password)) {result = true;} elsereturn false;}}}} catch (SQLException e2) {e2.printStackTrace();}return result;}

(2)登录按钮的响应

由于第一步中介绍了check()方法,对用户信息进行分类性验证。这里将我们的登录按钮响应事件。

  • 登录成功提示登陆成功,弹出相应的界面。
  • 登录失败提示用户或者密码输入错误,这里用到了对话框技术JOptionPane

当登录成功后,我们就new一个界面出来,这样就实现了我们登录成功进入相应的界面。

代码如下:

	bt1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String name = t1.getText(); // 获取文本框内的用户名String pass = t2.getText(); // 获取文本框内的密码if (0 == name.length()) {			//如果用户名中未输入信息,提示账号不能为空。JOptionPane.showMessageDialog(null, "账号不能为空");t1.grabFocus();return;}if (0 == pass.length()) {	//如果密码中未输入信息,提示密码不能为空。JOptionPane.showMessageDialog(null, "密码不可为空!");t2.grabFocus();return;}if (jc1.getSelectedItem().toString().equals("超级管理员")) {		if (check(name, pass)) {JOptionPane.showMessageDialog(null, "登陆成功");new user1();	//当登录成功以后,用户就自动进入到另一个界面“user1”。下面是一样的。} elseJOptionPane.showMessageDialog(null, "密码错误");}/* 仓库管理员的检查 */if (jc1.getSelectedItem().toString().equals("仓库管理员")) {if (check(name, pass)) {JOptionPane.showMessageDialog(null, "登陆成功");new user2();} elseJOptionPane.showMessageDialog(null, "密码错误");}/* 采购员的检查 */if (jc1.getSelectedItem().toString().equals("采购员")) {if (check(name, pass)) {JOptionPane.showMessageDialog(null, "登陆成功");new user3();} elseJOptionPane.showMessageDialog(null, "密码错误");}/* 销售员的检查 */if (jc1.getSelectedItem().toString().equals("销售员")) {if (check(name, pass)) {JOptionPane.showMessageDialog(null, "登陆成功");new user4();} elseJOptionPane.showMessageDialog(null, "密码错误");}}});

4. 全部代码示例

import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JTextField;import newGUI.PurchaseFrame;
import newGUI.StockFrame;
import test.user1;
import test.user2;
import test.user3;
import test.user4;public class Load_GUI extends JFrame implements ActionListener {static Load_GUI lg = null;        //放在Main函数中,用于加载窗体信息。//上面这部分代码是用来控制GUI风格的,我这里是Windows风格。//数据库信息private static String user = "root";        //连接数据库的用户名。//上面这个参数在最下面的this.setDefaultCloseOperation(),中使用参数。作用是,当我们打开连个窗口时,其中一个窗口关闭不会导致这个窗口也被迫关闭。private static String pass;                    //连接数据库的密码String url = "jdbc:mysql://localhost:3306/supermarket?serverTimezone=CTT";/* Lable控件 */JLabel l1 = new JLabel("XxxXX管理系统");JLabel l2 = new JLabel("用户名:");JLabel l3 = new JLabel("密码:");/* 控制Label中的字体风格 */Font f = new Font("楷体", Font.BOLD, 20);Font f2 = new Font("楷体", Font.BOLD, 15);/* 下拉单 */JComboBox jc1 = new JComboBox();/* 按钮 */JButton bt1 = new JButton("登录");JButton bt2 = new JButton("取消");/* 文本框 */JTextArea textarea;JTextField t1 = new JTextField();            //textField控件可以获取获取文本内容//JPasswordField t2 = new JPasswordField();        //密码输入框的专用控件private int defaultCloseOperation = HIDE_ON_CLOSE;{try {for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {if ("Nimbus".equals(info.getName())) {javax.swing.UIManager.setLookAndFeel(info.getClassName());break;}}} catch (Exception e) {System.out.println(e);}}public Load_GUI() {l1.setFont(f);        //字体风格Font参数和Label控件 名称为l1的对象 绑定。l2.setFont(f2);l3.setFont(f2);l1.setBounds(new Rectangle(100, 20, 220, 40));l2.setBounds(new Rectangle(40, 60, 200, 40));l3.setBounds(new Rectangle(40, 90, 200, 40));bt1.setBounds(new Rectangle(40, 180, 120, 25));bt2.setBounds(new Rectangle(220, 180, 120, 25));t1.setBounds(new Rectangle(100, 70, 180, 26));t2.setBounds(new Rectangle(100, 100, 180, 26));jc1.setBounds(new Rectangle(120, 130, 100, 26));/* 给对象名为jc1的Combobox控件,添加内容。 */jc1.addItem("超级管理员");jc1.addItem("仓库管理员");jc1.addItem("销售员");jc1.addItem("采购员");{bt2.addActionListener(new ActionListener() {//该事件监听用于 监听按钮"取消"事件。@Overridepublic void actionPerformed(ActionEvent e) {//如果用户按下”取消“按钮,程序退出。System.exit(0);}});bt1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String name = t1.getText(); // 获取文本框内的用户名String pass = t2.getText(); // 获取文本框内的密码if (0 == name.length()) {JOptionPane.showMessageDialog(null, "账号不能为空");t1.grabFocus();return;}if (0 == pass.length()) {JOptionPane.showMessageDialog(null, "密码不可为空!");t2.grabFocus();return;}if (jc1.getSelectedItem().toString().equals("超级管理员")) {if (check(name, pass)) {JOptionPane.showMessageDialog(null, "登陆成功");new user1();} elseJOptionPane.showMessageDialog(null, "密码错误");}/* 仓库管理员的检查 */if (jc1.getSelectedItem().toString().equals("仓库管理员")) {if (check(name, pass)) {JOptionPane.showMessageDialog(null, "登陆成功");new user2();} elseJOptionPane.showMessageDialog(null, "密码错误");}/* 采购员的检查 */if (jc1.getSelectedItem().toString().equals("采购员")) {if (check(name, pass)) {JOptionPane.showMessageDialog(null, "登陆成功");new user3();} elseJOptionPane.showMessageDialog(null, "密码错误");}/* 销售员的检查 */if (jc1.getSelectedItem().toString().equals("销售员")) {if (check(name, pass)) {JOptionPane.showMessageDialog(null, "登陆成功");new user4();} elseJOptionPane.showMessageDialog(null, "密码错误");}}});this.setTitle("登录");        //设置窗体标题名称this.setLayout(null); // 窗体布局设置为自定义,这行代码不可更换到其他位置//this.setSize(400, 300);this.add(bt2);this.add(bt1);this.add(l1);this.add(l2);this.add(l3);this.add(t1);this.add(t2);this.add(jc1);this.setBounds(800, 300, 400, 300);        //设置窗体规格this.setDefaultCloseOperation(1);this.setVisible(true);                    //窗体可以看见,如果是false,那么运行程序后窗体看不见,。this.setResizable(false);                //setResizable用于控制窗体大小可拉伸与否。false表示,窗体大小定死了。user = t1.getText();}}public static void main(String args[]) {lg = new Load_GUI();}@Overridepublic void actionPerformed(ActionEvent e) {}public boolean check(String name, String password) {try {Class.forName("com.mysql.cj.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}boolean result = false;try {String url = "jdbc:mysql://localhost:3306/supermarket?serverTimezone=CTT";// 注意设置时区,这个连接是8.0版本的mysql。String username = "root";String passwords = "Yuanfeng200517";Connection c = DriverManager.getConnection(url, username, passwords);if (c != null) {System.out.println("数据库连接成功!");} else {System.out.println("数据库连接失败!");}Statement s = c.createStatement();if (jc1.getSelectedItem().toString().equals("超级管理员")) {String sql = "select * from denglu " + "where zhanghao = '" + name + "' and mima = '"+ password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name) && rs.getString("mima").equals(password)) {result = true;} else {System.out.println(rs.getString("zhanghao").equals(name));System.out.println(rs.getString("mima").equals(password));return false;}}} else {if (jc1.getSelectedItem().toString().equals("供应商")) {String sql = "select * from denglu2 " + "where zhanghao = '" + name + "' and mima = '"+ password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name)&& rs.getString("mima").equals(password)) {result = true; // 如果用户名和密码都正确,那么就将result返回为true;} else {return false;}}}if (jc1.getSelectedItem().toString().equals("采购员")) {String sql = "select * from denglu_purchase " + "where zhanghao = '" + name+ "' and mima = '" + password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name)&& rs.getString("mima").equals(password)) {result = true; // 如果用户名和密码都正确,那么就将result返回为true;} elsereturn false;}}/****************** 销售员 ********************/if (jc1.getSelectedItem().toString().equals("销售员")) {String sql = "select * from denglu_sell " + "where zhanghao = '" + name+ "' and mima = '" + password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name)&& rs.getString("mima").equals(password)) {result = true; // 如果用户名和密码都正确,那么就将result返回为true;} elsereturn false;}}/****************** 仓库管理员 ********************/if (jc1.getSelectedItem().toString().equals("仓库管理员")) {String sql = "select * from denglu_warehouse " + "where zhanghao = '" + name+ "' and mima = '" + password + "'";ResultSet rs = s.executeQuery(sql);while (rs.next()) {if (rs.getString("zhanghao").equals(name)&& rs.getString("mima").equals(password)) {result = true;} elsereturn false;}}}} catch (SQLException e2) {e2.printStackTrace();}return result;}
}

5. 包的存放位置

由于我们登录成功后会相应不同的界面,我设计的界面存放结构如下:
在这里插入图片描述
由于每个界面只是放了个Lable,所以这里只展示了一个界面的代码,后面的都差不多,把Label的内容改改就行:

package test;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;public class user1 extends JFrame{
JLabel jlabel=new JLabel();public user1() {this.setTitle("超级管理员界面");this.setSize(600,500);this.setLayout(null);this.setLocation(400,400);this.jlabel=new JLabel("超级管理员界面");this.jlabel.setBounds(150, 120, 120, 30);this.add(jlabel);this.setVisible(true); this.setResizable(false);}public static void main(String [] args){new user1();}
}

实现出来就是这种界面:
在这里插入图片描述

6. 项目全部代码下载地址:JavaGUI超市进销存管理系统 所有代码

JavaGUI超市进销存管理系统 所有代码

7. Java GUI其他相关博客

本人所作的其他相关博客:

  1. Java窗体的创建,按钮的响应(最基础级别)收藏量23
  2. JavaGUI显示表格(连接数据库)基础(收藏量86)

这边建议各位使用快捷的窗体开发工具,JwindowBuilder,所有的窗体控件都是拖拽式的。具体使用各种博客都有。这里就不再赘述。


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

相关文章

JavaGUI设计-计算器

.利用GUI程序设计方法实现简单计算器的设计。运行效果可设计为如下界面,也可设计为windows系统中的计算器样式。 (此程序为整数计算) 1 基础页面设计 2 流布局器使用 3 单选按钮注册监听事件 4 文本框中内容获取,数据覆盖 除法 …

Java之GUI

(本文为博主JAVA课程学习总结) GUI —— 图形化用户界面 JFC(Java Foundation Classed)是开发GUI的API集 JFC包括:AWT(Abstract Window Toolkit抽象窗口工具包)、Swing组件(建立在…

JAVA--GUI

AWT(Abstract WindowToolkit抽象视窗工具组)包括了很多类和接口,用于java.Application的GUI(Graphics User Interface图形用户界面)编程,GUI的各种元素(如:窗口,按钮,文本框等)由java类来实现。…

JavaGUI------------常用的组件(标签、按钮)

目录 1.标签 2.按钮 1.标签 类:JLabel作用:显示文本或者提示信息 构造函数: new JLabel();new JLabel(Icon icon);//设置图标new JLabel(Icon icon,int aligment);//设置图标水平对齐方式new JLabel(String str,i…

javaGUI基础知识

*注: 作者使用的是 jdk1.8.0_121 版本,可根据下方链接进行下载 jdk1.8.0_121 64位 jdk1.8.0_131 32位 1.基础界面 Frame frame new Frame(); frame.setVisible(true);2.关闭按钮监听 frame.addWindowListener(new WindowAdapter(){Overridepublic void windowClosing(Windo…

Java GUI程序示例

Java GUI程序示例 与命令行界面相比,图形界面对于用户来说更为简便易用。图形用户界面(Graphical User Interface,简称 GUI),关于Java图形用户界面,可参见 https://blog.csdn.net/cnds123/article/details…

JavaGUI界面实现跳转

页面跳转: 思路: 先定义一个类继承JFrame;定义要用的控件,再在构造方法中对定义的控件进行修改,后写出主函数,在主函数中调用构造方法。同理,在idea中,将需要跳转的几个界面置于同一…

JavaGUI显示表格(连接数据库)基础

文章目录 一、界面概览二、代码三、代码解释四、项目全部代码下载地址五、 项目代码说明六、功能更新&#xff1a;根据下拉单内容查询不同数据库6.1 界面概览6.2 用到的主要控件 七、其他相关博客7.1 <a href"https://blog.csdn.net/SKMIT/article/details/106676478&q…

Java-GUI简介

JavaSwing-GUI开发简介&#xff08;1&#xff09; 本期介绍一些GUI的基本知识&#xff0c;开发GUI程序的时候直接用windowbuilder生成框架&#xff0c;傻瓜式拖拽就行&#xff0c;非常简单。 一、布局管理器 1.1:FlowLayout(流式布局) 1.2:GridLayout(网格布局) 1.3:Grid…

Java:GUI编程

文章目录 GUI编程AWT一、AWT介绍二、组件和容器(Component和Container)2.1.Frame2.2.Panel 三、布局管理器3.1.第一种布局管理器——FlowLayout3.2.第二种布局管理器——BorderLayout3.3.第三种布局管理器——GridLayout&#xff08;表格布局管理器&#xff09;3.4.布局练习 四…

Java GUI编程

GUI&#xff08;Graphical User Interface&#xff09;即图形用户界面&#xff0c;它能够使应用程序看上去更加友好。 Swing概述 Swing是纯Java组件&#xff0c;使得应用程序在不同的平台上运行时具有相同外观和相同的行为。 Swing中的大部分组件类位于javax.swing包中。 Sw…

Java GUI入门教程

人生的烦恼&#xff0c;多在于知道的太多&#xff0c;而做的太少。 Java程序中开发GUI页面。下面我主要对Java中实现图像管理、图形绘制和颜色管理等做出介绍&#xff0c;与此同时&#xff0c;Swing包也做出一部分介绍。 像素与坐标 用于表示图像像素数目的称为图像分辨率。显…

【JAVA】GUI编程

GUI的概念 Swing概述 容器组件 布局管理器 常用组件 事件处理 对话框 GUI的概念 GUI&#xff08;Graphical User Interface&#xff09;即图形用户界面&#xff0c;它能够使应用程序使用起来更加便捷&#xff0c;看上去更加友好。 Swing概述 Swing是纯Java组件&#xff0c;使得…

Java--GUI编程

目录 GUI的概念 Swing概述 ​编辑 容器组件 布局管理器 常用组件 对话框 内部类 GUI的概念 GUI&#xff08;Graphics User Interface&#xff09;&#xff0c;图形用户界面&#xff0c;是指采用图形方式显示的计算机操作用户界面&#xff0c;是计算机与其使用者之间的…

GUI编程(java)

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

Java GUI 开发

Swing图形用户界面 GUI 图形用户界面&#xff08;Graphical User Interface&#xff0c;简称 GUI&#xff0c;又称图形用户接口&#xff09;是指采用图形方式显示的计算机操作用户界面&#xff0c;包括窗口、菜单、按钮等各种屏幕组件。 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的概念&#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组件的…