既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
– Table structure for users
DROP TABLE IF EXISTS users
;
CREATE TABLE users
(
id
int(11) NOT NULL AUTO_INCREMENT,
username
varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
userpwd
varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
flag
int(11) NOT NULL,
PRIMARY KEY (id
) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
– Records of users
INSERT INTO users
VALUES (1, ‘admin’, ‘admin’, 2);
INSERT INTO users
VALUES (2, ‘user’, ‘123456’, 1);
SET FOREIGN_KEY_CHECKS = 1;
### 4.工程截图
![](https://img-blog.csdnimg.cn/20210628234956905.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
## 二、系统展示
### 1.用户-登录页
![](https://img-blog.csdnimg.cn/20210629000033132.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 2.用户-登录成功
![](https://img-blog.csdnimg.cn/20210629000048819.jpg)
### 3.用户-主页面
![](https://img-blog.csdnimg.cn/20210629000101959.gif)
### 4.用户-用户管理-个人信息
![](https://img-blog.csdnimg.cn/20210629000135862.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 5.用户-用户管理-修改密码
![](https://img-blog.csdnimg.cn/20210629000146909.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 6.用户-商品管理-商品信息
![](https://img-blog.csdnimg.cn/20210629000157953.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 7.用户-仓库管理-仓库信息
![](https://img-blog.csdnimg.cn/20210629000209886.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 8.管理员-登录页
![](https://img-blog.csdnimg.cn/20210629000222758.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 9.管理员-主页面
![](https://img-blog.csdnimg.cn/20210629000235743.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 10.管理员-用户管理-添加用户
![](https://img-blog.csdnimg.cn/20210629000249589.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 11.管理员-用户管理-用户信息
![](https://img-blog.csdnimg.cn/20210629000301305.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 12.管理员-用户管理-用户删除
![](https://img-blog.csdnimg.cn/20210629000312871.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 13.管理员-用户管理-修改密码
![](https://img-blog.csdnimg.cn/20210629000325419.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 14.管理员-商品管理-商品添加
![](https://img-blog.csdnimg.cn/20210629000338764.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 15.管理员-商品管理-商品删除
![](https://img-blog.csdnimg.cn/20210629000351562.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 16.管理员-商品管理-商品更新
![](https://img-blog.csdnimg.cn/20210629000402566.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 17.管理员-仓库管理-仓库添加
![](https://img-blog.csdnimg.cn/20210629000441705.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 18.管理员-仓库管理-仓库删除
![](https://img-blog.csdnimg.cn/20210629000454718.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
### 19.管理员-仓库管理-仓库更新
![](https://img-blog.csdnimg.cn/20210629000506525.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbG9uZ3FpYW5n,size_16,color_FFFFFF,t_70)
## 三、部分代码
### LoginFrame.java
package net.wms.view;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import net.wms.dao.LoginUseImp;
import net.wms.model.User;
/**
- 登陆界面 1、创建登陆界面,初始化上面的对象 2、美化登陆界面,设置各个对象的大小、位置、字体以及界面的背景 3、给按钮设置监听事件
*/
public class LoginFrame {
// 初始化字体
Font d = new Font(“楷体”, Font.BOLD, 36);
Font f = new Font(“楷体”, Font.BOLD, 18);
// 初始化对象
JFrame logingui = new JFrame(“仓库管理系统”);
JLabel userlogin = new JLabel(“用户登录”);
JLabel username = new JLabel(“用户名:”);
JLabel password = new JLabel(“密 码:”);
JLabel usertyle = new JLabel(“用户类型:”);
JTextField name = new JTextField();
JTextField pwd = new JPasswordField();
JComboBox box = new JComboBox(new String[] { “管理员”, “普通用户” });
JButton login = new JButton(“登陆”);
// Image icon = Toolkit.getDefaultToolkit().getImage(“F:\仓库管理系统\后台.jpg”);
// 给User类初始化对象user
User user = new User();
public void LoginGui() {
// 后台运行时图标
// logingui.setIconImage(icon);
// 设置对象
logingui.setBounds(600, 300, 600, 420);
// 设置退出
logingui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 取消框架格式
logingui.setLayout(null);
// 设置位置、大小和字体
userlogin.setBounds(220, 30, 200, 50);
userlogin.setFont(d);
username.setBounds(180, 100, 100, 30);
username.setFont(f);
password.setBounds(180, 140, 100, 30);
password.setFont(f);
usertyle.setBounds(180, 180, 100, 30);
usertyle.setFont(f);
name.setBounds(280, 100, 180, 30);
name.setFont(f);
pwd.setBounds(280, 140, 180, 30);
box.setBounds(280, 180, 125, 30);
box.setFont(f);
login.setBounds(235, 260, 80, 30);
login.setFont(f);
// 添加对象
logingui.add(userlogin);
logingui.add(username);
logingui.add(password);
logingui.add(usertyle);
logingui.add(name);
logingui.add(pwd);
logingui.add(box);
logingui.add(login);
// 窗体可视化
logingui.setVisible(true);
// 居中显示
logingui.setLocationRelativeTo(null);
// 设置登录图形界面的背景图片
((JComponent) logingui.getContentPane()).setOpaque(false); // 将框架强转为容器
// ImageIcon img = new ImageIcon("Images//登录背景.jpg"); // 传入背景图片路径
// JLabel background = new JLabel(img);// 将图片放进标签里
// logingui.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));//
// 将标签放进容器里
// background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());//
// 设置标签的大小
// 给下拉框设置选择监听事件
box.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 判断选择选项是否和下拉框数据一致
if (box.getSelectedItem().equals("管理员")) {
// 设置标志量的值
user.setFlag("2");
} else {
user.setFlag("1");
}
}
});
// 给登录按钮设置监听事件
login.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 提取文本框里的用户名和密码
String name_text = name.getText();
String pwd_text = pwd.getText();
// 将得到的值存入user对象里面
user.setusername(name_text);
user.setuserpwd(pwd_text);
// 给登陆接口实现类初始化对象
LoginUseImp l = new LoginUseImp();
// 获取标志量
String state = user.getFlag();
// 判断标志量,设置文本框的默认值为管理员
if (state != "1" && state != "2") {
state = "2";
}
// 判断文本框值是不是管理员
if (state == "2") {
try {
// 执行sql语句,进行数据库添加
boolean flag = l.Query(user,
"select * from users where username=? and userpwd=? and flag=" + state);
if (flag) {
// 文本提示框
JOptionPane.showMessageDialog(null, "登陆成功");
// 界面转换,隐藏原来界面
logingui.setVisible(false);
// 构造新的界面
new IndexAdminFrame(name_text);
} else {
// 文本提示框
JOptionPane.showMessageDialog(null, "登陆失败,请检查用户名和密码");
// 设置用户名框和密码框的值为空
name.setText("");
pwd.setText("");
}
} catch (SQLException e1) {
e1.printStackTrace();
}
// 判断是不是普通用户
} else if (state == "1") {
try {
// 执行sql语句
boolean flag = l.Query(user,
"select * from users where username=? and userpwd=? and flag=" + state);
if (flag) {
JOptionPane.showMessageDialog(null, "登陆成功");
logingui.setVisible(false);
new IndexUserFrame(name_text);
} else {
JOptionPane.showMessageDialog(null, "登陆失败,请检查用户名和密码");
name.setText("");
pwd.setText("");
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
});
}
// 整个程序执行的入口
public static void main(String[] args) {
LoginFrame l = new LoginFrame();
l.LoginGui();
}
}
### IndexAdminFrame.java
package net.wms.view;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class IndexAdminFrame {
// 声明对象
public JFrame index;
private JMenuBar management;
private JMenu user;
private JMenu goods;
private JMenu storage;
private JMenuItem exit;
private JMenuItem useradd;
private JMenuItem userdelete;
private JMenuItem userupdate;
private JMenuItem userselect;
private JMenuItem goodsadd;
private JMenuItem goodsdelete;
private JMenuItem goodsupdate;
private JMenuItem storageadd;
private JMenuItem storagedelete;
private JMenuItem storageupdate;
Font f = new Font(“楷体”, Font.BOLD, 15);
// 构造函数
public IndexAdminFrame(String name) {
indexadmin();
// 菜单的添加
// 给用户菜单添加条目
user.add(useradd);
user.add(userselect);
user.add(userdelete);
user.add(userupdate);
user.add(exit);
// 给商品菜单添加条目
goods.add(goodsadd);
goods.add(goodsdelete);
goods.add(goodsupdate);
// 给仓库菜单添加条目
storage.add(storageadd);
storage.add(storagedelete);
storage.add(storageupdate);
// 将菜单添加到菜单栏里
management.add(user);
management.add(goods);
management.add(storage);
init(name);
action(name);
}
private void init(String name) {
// 初始化框架
index = new JFrame("欢迎管理员 " + name + " 使用本系统");
// 设置框架大小及位置
index.setBounds(500, 100, 600, 500);
index.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 将菜单栏设置进框架
index.setJMenuBar(management);
// 清空框架格式
index.setLayout(null);
// 将框架转换为容器
((JComponent) index.getContentPane()).setOpaque(false);
// // 声明图片对象
// ImageIcon img = null;
// // 产生随机数
// Random r = new Random();
// int i = r.nextInt(5);
// 用随机数的值获取不同的图片
// switch (i) {
// case 0:
// img = new ImageIcon("Images//主背景.jpg");
// break;
// case 1:
// img = new ImageIcon("Images//主背景1.jpg");
// break;
// case 2:
// img = new ImageIcon("Images//主背景2.jpg");
// break;
// case 3:
// img = new ImageIcon("Images//主背景3.jpg");
// break;
// case 4:
// img = new ImageIcon("Images//主背景4.jpg");
// break;
// default:
// break;
// }
// 初始化标签
// JLabel background = new JLabel(img);
// // 将标签添加进框架index(添加进容器中)
// index.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
// // 设置标签大小
// background.setBounds(0, 20, img.getIconWidth(), img.getIconHeight());
// // 设置可视化
index.setVisible(true);
// 居中显示
index.setLocationRelativeTo(null);
}
public void indexadmin() {
// 对象初始化以及设置字体
management = new JMenuBar();
// 菜单初始化
user = new JMenu(" 用户管理");
user.setFont(f);
goods = new JMenu(" 商品管理");
goods.setFont(f);
storage = new JMenu(" 仓库管理");
storage.setFont(f);
// 菜单条目初始化
exit = new JMenuItem("更换用户");
exit.setFont(f);
useradd = new JMenuItem("添加用户");
useradd.setFont(f);
userdelete = new JMenuItem("删除用户");
userdelete.setFont(f);
userupdate = new JMenuItem("密码修改");
userupdate.setFont(f);
userselect = new JMenuItem("查询用户");
userselect.setFont(f);
goodsadd = new JMenuItem("商品添加");
goodsadd.setFont(f);
goodsdelete = new JMenuItem("商品删除");
goodsdelete.setFont(f);
goodsupdate = new JMenuItem("商品更新");
goodsupdate.setFont(f);
storageadd = new JMenuItem("仓库添加");
storageadd.setFont(f);
storagedelete = new JMenuItem("仓库删除");
storagedelete.setFont(f);
storageupdate = new JMenuItem("仓库更新");
storageupdate.setFont(f);
}
// 给所有的菜单条目设置监听事件
private void action(final String name) {
exit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
// 将原来页面设置为不可见
index.setVisible(false);
// 调用函数转到登陆页面
LoginFrame.main(null);
}
});
useradd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
// 将原来页面设置为不可见
index.setVisible(false);
// 用构造函数获取新页面
new UserAddFrame(name);
}
});
userselect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new UserSelectFrame(name);
}
});
userdelete.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new UserDeleteFrame(name);
}
});
userupdate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new AdminUpdateFrame(name);
}
});
goodsadd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new GoodsAddFrame(name);
}
});
goodsdelete.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new GoodsDeleteFrame(name);
}
});
goodsupdate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new GoodsUpdateFrame(name);
}
});
storageadd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new StorageAddFrame(name);
}
});
storagedelete.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new StorageDeleteFrame(name);
}
});
storageupdate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new StorageUpdateFrame(name);
}
});
}
}
### IndexUserFrame.java
package net.wms.view;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class IndexUserFrame {
// 声明对象
public JFrame index;
private JMenuBar management;
private JMenu user;
private JMenu goods;
private JMenu storage;
private JMenuItem exit;
private JMenuItem usernews;
private JMenuItem userupdate;
private JMenuItem goodsselect;
private JMenuItem storageselect;
// 创建构造函数
public IndexUserFrame(String name) {
indexadmin();
// 添加对象
user.add(usernews);
user.add(userupdate);
user.add(exit);
goods.add(goodsselect);
storage.add(storageselect);
management.add(user);
management.add(goods);
management.add(storage);
init(name);
action(name);
}
private void init(String name) {
// 初始化矿建index
index = new JFrame("欢迎用户 " + name + " 使用本系统");
// 设置框架大小和位置
index.setBounds(500, 100, 600, 500);
index.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 将菜单栏设置进框架
index.setJMenuBar(management);
index.setLayout(null);
// 设置随机背景
((JComponent) index.getContentPane()).setOpaque(false);
// ImageIcon img = null;
// Random r = new Random();
// int i = r.nextInt(5);
// switch (i) {
// case 0:
// img = new ImageIcon("Images//主背景.jpg");
// break;
// case 1:
// img = new ImageIcon("Images//主背景1.jpg");
// break;
// case 2:
// img = new ImageIcon("Images//主背景2.jpg");
// break;
// case 3:
// img = new ImageIcon("Images//主背景3.jpg");
// break;
// case 4:
// img = new ImageIcon("Images//主背景4.jpg");
// break;
// default:
// break;
// }
// JLabel background = new JLabel(img);
// index.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
// background.setBounds(0, 20, img.getIconWidth(), img.getIconHeight());
index.setVisible(true);
// 居中显示
index.setLocationRelativeTo(null);
}
public void indexadmin() {
// 初始化对象
Font f = new Font("楷体", Font.BOLD, 15);
management = new JMenuBar();
user = new JMenu(" 用户管理");
user.setFont(f);
goods = new JMenu(" 商品管理");
goods.setFont(f);
storage = new JMenu(" 仓库管理");
storage.setFont(f);
exit = new JMenuItem("更换用户");
exit.setFont(f);
usernews = new JMenuItem("个人信息");
usernews.setFont(f);
userupdate = new JMenuItem("密码修改");
userupdate.setFont(f);
goodsselect = new JMenuItem("商品浏览");
goodsselect.setFont(f);
storageselect = new JMenuItem("仓库浏览");
storageselect.setFont(f);
}
// 为所有的菜单条目设置监听事件
private void action(final String name) {
exit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
LoginFrame.main(null);
}
});
usernews.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new UserNewsFrame(name);
}
});
userupdate.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new UserUpdateFrame(name);
}
});
goodsselect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new GoodsSelectFrame(name);
}
});
storageselect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ex.setVisible(false);
new UserUpdateFrame(name);
}
});
goodsselect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
new GoodsSelectFrame(name);
}
});
storageselect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 界面转换
index.setVisible(false);
[外链图片转存中…(img-SYFlT24n-1715744751125)]
[外链图片转存中…(img-obD9HPxo-1715744751126)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!