Eclipse+Java+Swing+Mysql实现超市管理系统

文章详细描述了一个使用JavaSwing构建的商品管理系统,包括JFrame界面组件的创建,JTable用于显示和编辑商品信息,以及与数据库的交互,如修改和删除商品操作。
摘要由CSDN通过智能技术生成

import javax.swing.JButton;

public class GoodsXG extends JFrame {

private JTextField id, name, num, price;

private JButton button;

private JButton button_1;

int goodsid;

public GoodsXG(Goods goods) {

super(“商品管理系统”);

this.setBounds(0, 0, 400, 450);

this.setLocationRelativeTo(null);// 让窗口在屏幕中间显示

this.setResizable(false);// 让窗口大小不可改变

getContentPane().setLayout(null);

JLabel label = new JLabel(“商品编号:”);

label.setBounds(85, 89, 87, 22);

getContentPane().add(label);

id = new JTextField();

id.setBounds(147, 90, 142, 21);

getContentPane().add(id);

id.setColumns(10);

JLabel label_1 = new JLabel(“商品名称”);

label_1.setBounds(85, 139, 87, 22);

getContentPane().add(label_1);

name = new JTextField();

name.setColumns(10);

name.setBounds(147, 140, 142, 21);

getContentPane().add(name);

JLabel label_2 = new JLabel(“数量:”);

label_2.setBounds(85, 193, 87, 22);

getContentPane().add(label_2);

num = new JTextField();

num.setColumns(10);

num.setBounds(147, 194, 142, 21);

getContentPane().add(num);

JLabel label_3 = new JLabel(“单价:”);

label_3.setBounds(85, 241, 87, 22);

getContentPane().add(label_3);

price = new JTextField();

price.setColumns(10);

price.setBounds(147, 242, 142, 21);

getContentPane().add(price);

goodsid = goods.getGoodsID();

id.setText(Integer.toString(goods.getGoodsID()));

name.setText(goods.getGoodsName());

num.setText(Integer.toString(goods.getNum()));

price.setText(goods.getPrice());

button = new JButton(“确定”);

button.setBounds(78, 317, 93, 23);

getContentPane().add(button);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String addId = id.getText();

String addName = name.getText();

String addNum = num.getText();

String addPrice = price.getText();

if (addName.equals(“”) || addName.equals(“”) || addNum.equals(“”) || addPrice.equals(“”)) {

JOptionPane.showMessageDialog(null, “请完整输入要修改的数据”);

} else {

String sql = "UPDATE goods SET " + “Goodsid='” + addId + “‘,Goodsname=’” + addName + “‘,num=’”

  • addNum + “‘,price=’” + addPrice + “'where goodsid=” + goodsid;

int result = Updata.addData(sql);

if (result > 0) {

JOptionPane.showMessageDialog(null, “修改成功!”);

JOptionPane.showMessageDialog(null, “记得刷新一下哦!”);

dispose();

// GoodsManage i = new GoodsManage();

// i.setVisible(true);

} else {

JOptionPane.showMessageDialog(null, “修改失败!”);

}

}

}

});

button_1 = new JButton(“取消”);

button_1.setBounds(208, 317, 93, 23);

getContentPane().add(button_1);

button_1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

dispose();

}

});

}

public static void main(String[] args) {

GoodsXG g = new GoodsXG(null);

g.setVisible(true);

}

}

GoodsManagement.java


package com.ynavc.Vive;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.ScrollPaneConstants;

import javax.swing.table.DefaultTableModel;

import com.ynavc.Bean.Goods;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.event.ActionEvent;

public class GoodsManage extends JFrame {

private JTextField textField;

Select select = new Select();

Updata updata = new Updata();

Object[] header = { “商品编号”, “商品名称”, “数量”, “单价” };

String sql = “SELECT goodsID,goodsname,num,price FROM goods”;

Object[][] data = select.getGoods(sql);

DefaultTableModel df = new DefaultTableModel(data, header);

int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

public GoodsManage() {

super(“商品管理系统”);

this.setBounds(0, 0, 700, 450);

this.setLocationRelativeTo(null);// 让窗口在屏幕中间显示

this.setResizable(false);// 让窗口大小不可改变

getContentPane().setLayout(null);

JTable jTable = new JTable(df);

JScrollPane jsp = new JScrollPane(jTable, v, h);

jsp.setBounds(10, 10, 515, 320);

getContentPane().add(jsp);

JButton button_1 = new JButton(“显示所有商品”);

button_1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String sql = “SELECT goodsID,goodsname,num,price FROM goods”;

Object[][] data = Select.getGoods(sql);

df.setDataVector(data, header);

}

});

button_1.setBounds(535, 80, 127, 30);

getContentPane().add(button_1);

JButton button_2 = new JButton(“修改商品”);

button_2.setBounds(535, 140, 127, 30);

getContentPane().add(button_2);

button_2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

if (jTable.getSelectedColumn() < 0) {

JOptionPane.showMessageDialog(null, “请选择要修改的数据!”);

} else {

int goodsID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());

String name = jTable.getValueAt(jTable.getSelectedRow(), 1).toString();

int num = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 2).toString());

String price = jTable.getValueAt(jTable.getSelectedRow(), 3).toString();

Goods goods = new Goods(goodsID, name, num, price);

GoodsXG goodsXG = new GoodsXG(goods);

goodsXG.setVisible(true);

}

}

});

JButton button_3 = new JButton(“删除商品”);

button_3.setBounds(535, 200, 127, 30);

getContentPane().add(button_3);

button_3.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

if (jTable.getSelectedColumn() < 0) {

JOptionPane.showMessageDialog(null, “请选中要删除的数据!”);

} else {

int goodsID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());

String sql = “delete from goods where goodsid=” + goodsID;

int result = updata.addData(sql);

if (result > 0) {

JOptionPane.showMessageDialog(null, “删除成功!”);

JOptionPane.showMessageDialog(null, “记得刷新一下哦!”);

} else {

JOptionPane.showMessageDialog(null, “删除失败!”);

}

}

}

});

JButton button_4 = new JButton(“添加商品”);

button_4.setBounds(535, 258, 127, 30);

getContentPane().add(button_4);

button_4.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

GoodsADD goodsAdd = new GoodsADD();

goodsAdd.setVisible(true);

}

});

JLabel label = new JLabel(“商品编号:”);

label.setBounds(40, 354, 112, 32);

getContentPane().add(label);

textField = new JTextField();

textField.setBounds(154, 358, 127, 26);

getContentPane().add(textField);

textField.setColumns(10);

JButton button = new JButton(“按编号查询”);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String sql = “SELECT goodsID,goodsname,num,price FROM goods WHERE goodsid LIKE '%” + textField.getText()

  • “%'”;

Object[][] data = Select.getGoods(sql);

df.setDataVector(data, header);

}

});

button.setBounds(305, 355, 112, 30);

getContentPane().add(button);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

super.windowClosing(e);

// 加入动作

GoodsManagement m = new GoodsManagement();

m.setVisible(true);

}

});

}

public static void main(String[] args) {

GoodsManage t = new GoodsManage();

t.setVisible(true);

}

}

LoginFrame.java


package com.ynavc.Vive;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.HeadlessException;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import com.ynavc.Dao.UserDao;

/**

  • 登录框架 2019年6月6日18:04:57

  • @author Administrator

*/

public class LoginFrame extends Frame {

private static final long serialVersionUID = 1L;

private JFrame jFrame = new JFrame(“登录”);

private Container c = jFrame.getContentPane();

private JLabel a1 = new JLabel(“用户名”);

private JTextField username = new JTextField(“admin”);

private JLabel a2 = new JLabel(“密 码”);

private JPasswordField password = new JPasswordField(“admin”);

private JButton okbtn = new JButton(“登录”);

private JButton cancelbtn = new JButton(“重置”);

public LoginFrame() {

// 设置窗体的位置及大小

jFrame.setBounds(600, 200, 300, 220);

// 设置一层相当于桌布的东西

c.setLayout(new BorderLayout());// 布局管理器

// 设置按下右上角X号后关闭

jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// 初始化–往窗体里放其他控件

jFrame.setLocationRelativeTo(null);// 窗

// 标题部分

JPanel titlePanel = new JPanel();

titlePanel.setLayout(new FlowLayout());

titlePanel.add(new JLabel(“超市管理系统”));

c.add(titlePanel, “North”);

// 输入部分-

JPanel fieldPanel = new JPanel();

fieldPanel.setLayout(null);

a1.setBounds(50, 20, 50, 20);

a2.setBounds(50, 60, 50, 20);

fieldPanel.add(a1);

fieldPanel.add(a2);

username.setBounds(110, 20, 120, 20);

password.setBounds(110, 60, 120, 20);

fieldPanel.add(username);

fieldPanel.add(password);

c.add(fieldPanel, “Center”);

// 按钮部分

JPanel buttonPanel = new JPanel();

buttonPanel.setLayout(new FlowLayout());

buttonPanel.add(okbtn);

buttonPanel.add(cancelbtn);

c.add(buttonPanel, “South”);

// 设置窗体可见

jFrame.setVisible(true);

// 确认按下去获取

okbtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

try {

String uname = username.getText();

String pwd = String.valueOf(password.getPassword());

boolean flag = false;

try {

flag = UserDao.login(uname, pwd);

} catch (Exception e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if (flag) {

jFrame.setVisible(false);

JOptionPane.showMessageDialog(null, “恭喜您,登录成功!”);

GoodsManage g = new GoodsManage();

g.setVisible(true);

// 窗口居中

g.setLocationRelativeTo(null);

} else {

JOptionPane.showMessageDialog(null, “登录失败,账号或密码错误”);

}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

最后,强调几点:

  • 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
  • 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
  • 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。

面试答案

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
munity.csdnimg.cn/images/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

最后

最后,强调几点:

  • 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
  • 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
  • 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。

面试答案

[外链图片转存中…(img-d7nK0Bga-1713342939840)]

[外链图片转存中…(img-oXL5PF19-1713342939840)]

[外链图片转存中…(img-4jaGkViE-1713342939840)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

员工工资管理系统是一个常见的软件应用程序,可以帮助公司管理员工的基本信息、薪资、考勤、福利等方面的内容。本文将介绍如何使用 Eclipse+Java+Swing+Mysql 实现员工工资管理系统。 步骤1:创建数据库 首先,我们需要在 Mysql 中创建一个名为 salary 的数据库,并在其中创建三个表:employee、salary_record 和 department。 employee 表用于存储员工的基本信息,包括员工编号、姓名、性别、部门编号等字段。salary_record 表用于存储员工的薪资记录,包括员工编号、发放日期、基本工资、奖金、扣款等字段。department 表用于存储部门的基本信息,包括部门编号、部门名称等字段。 步骤2:创建 Java 项目 在 Eclipse 中创建一个新的 Java 项目,命名为 SalaryManagementSystem。在项目中创建三个包:entity、dao 和 view。 entity 包用于存储实体类,包括 Employee、SalaryRecord 和 Department 等类。dao 包用于存储数据访问对象,包括 EmployeeDao、SalaryRecordDao 和 DepartmentDao 等类。view 包用于存储界面类,包括 LoginFrame、MainFrame 和 AddEmployeeFrame 等类。 步骤3:编写实体类 在 entity 包中创建 Employee、SalaryRecord 和 Department 等类,并为每个类添加相应的属性和方法。例如,Employee 类包括员工编号、姓名、性别、所属部门等属性,以及获取和设置这些属性的方法。 步骤4:编写数据访问对象 在 dao 包中创建 EmployeeDao、SalaryRecordDao 和 DepartmentDao 等类,并实现相应的数据访问方法。例如,EmployeeDao 类包括添加员工、删除员工、更新员工信息、查询员工信息等方法。 步骤5:编写界面类 在 view 包中创建 LoginFrame、MainFrame 和 AddEmployeeFrame 等类,并实现相应的界面和事件处理方法。例如,LoginFrame 类用于显示登录界面,并处理用户登录事件;AddEmployeeFrame 类用于显示添加员工界面,并处理添加员工事件。 步骤6:连接数据库 使用 JDBC 连接 Mysql 数据库,为每个数据访问对象创建相应的连接和预编译语句,实现数据库的增删改查操作。 步骤7:测试程序 在 Eclipse 中运行程序,测试各个功能是否正常。例如,登录功能、员工信息查询功能、添加员工功能等。 总结 本文介绍了如何使用 Eclipse+Java+Swing+Mysql 实现员工工资管理系统。通过实现实体类、数据访问对象和界面类等模块,实现对员工信息、薪资、部门信息等数据的管理。这个项目可以作为 Java 开发入门的练手项目,帮助初学者熟悉 Java 开发、Swing 界面设计和 Mysql 数据库操作等技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值