让我来讲解“Java+swing+Mysql实现商品销售管理系统”的完整攻略。这个系统主要涉及到 Java 编程语言、swing GUI 工具包以及 Mysql 数据库的应用。下面是具体的步骤:
步骤一:环境搭建与项目创建
在搭建环境之前需要安装 Java JDK、Eclipse/IDEA 编辑器、Mysql 数据库工具等软件。具体过程可以参考网上教程进行安装。
创建项目时,我们需要使用窗口构建器(Window Builder)插件来构建 GUI 界面,并使用 Mysql 数据库来存储和管理数据。可以参考下面的示例:
- 创建 GUI 界面
可以使用 swing 工具包来构建 GUI 界面。通过在 Eclipse/IDEA 编辑器中创建一个新的 Java 项目,并添加窗口构建器插件,然后在窗口构建器中进行界面设计。下面是代码实现示例:
public class MainFrame extends JFrame {
private static final long serialVersionUID = 1L;
private static final String DEFAULT_TITLE = "商品销售管理系统";
private static final int DEFAULT_WIDTH = 800;
private static final int DEFAULT_HEIGHT = 600;
public MainFrame() {
setTitle(DEFAULT_TITLE);
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
getContentPane().add(mainPanel);
// 添加组件
JTextField nameField = new JTextField(20);
mainPanel.add(nameField);
JTextField priceField = new JTextField(20);
mainPanel.add(priceField);
JButton addButton = new JButton("添加");
mainPanel.add(addButton);
setVisible(true);
}
public static void main(String[] args) {
new MainFrame();
}
}
- 使用 Mysql 数据库
在项目中需要使用 Mysql 数据库来存储和管理数据。可以使用 Mysql 工具,创建一个名为“goods”的数据库,并添加一个名为“goods_list”的数据表来存储商品数据。下面是创建数据表的 SQL 语句示例:
CREATE TABLE goods_list (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
price DOUBLE(7,2) NOT NULL,
time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
在 Java 代码中可以使用 JDBC 连接 Mysql 数据库,并实现数据的增删改查等操作。下面是示例代码:
public class GoodsDao {
private static final String DB_URL = "jdbc:mysql://localhost:3306/goods";
private static final String DB_USER = "root";
private static final String DB_PASS = "123456";
private Connection conn = null;
public GoodsDao() throws SQLException {
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
}
public boolean addGoods(Goods goods) throws SQLException {
String sql = "INSERT INTO goods_list (name, price) VALUES (?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, goods.getName());
stmt.setDouble(2, goods.getPrice());
return stmt.executeUpdate() > 0;
}
// 其他操作方法
}
步骤二:实现功能与界面交互
在上述步骤中已经完成了 GUI 界面和 Mysql 数据库的设计,接下来就是将它们整合起来实现具体的功能。主要分为以下几个模块:
- 添加商品模块
在添加商品模块中,可以通过界面上的文本框输入商品的名字和价格,并通过“添加”按钮来将商品信息添加到 Mysql 数据库中。当用户点击“添加”按钮时,程序会通过连接数据库的方式将商品信息添加到 Mysql 数据库中,具体实现参考下面的代码:
public class AddDialog extends JDialog {
private static final long serialVersionUID = 1L;
private JTextField nameField;
private JTextField priceField;
public AddDialog(JFrame frame, String title, boolean modal) {
super(frame, title, modal);
JPanel contentPane = new JPanel();
setContentPane(contentPane);
JLabel nameLabel = new JLabel("商品名称:");
contentPane.add(nameLabel);
nameField = new JTextField(20);
contentPane.add(nameField);
JLabel priceLabel = new JLabel("商品价格:");
contentPane.add(priceLabel);
priceField = new JTextField(20);
contentPane.add(priceField);
JButton addButton = new JButton("添加");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
double price = Double.parseDouble(priceField.getText());
Goods goods = new Goods(name, price);
try {
GoodsDao goodsDao = new GoodsDao();
if (goodsDao.addGoods(goods)) {
JOptionPane.showMessageDialog(null, "添加成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
dispose();
} else {
JOptionPane.showMessageDialog(null, "添加失败!", "提示", JOptionPane.ERROR_MESSAGE);
}
} catch (SQLException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, "添加失败!", "提示", JOptionPane.ERROR_MESSAGE);
}
}
});
contentPane.add(addButton);
}
}
- 删除商品模块
在删除商品模块中,用户可以通过选择商品列表中的某一项后点击“删除”按钮来删除已选商品。具体实现参考下面的代码:
public class MainFrame extends JFrame {
// 窗口中的界面组件
private JList<Goods> goodsList;
private JButton addButton;
private JButton deleteButton;
public MainFrame() {
// 窗口初始化代码
// 商品列表
try {
GoodsDao goodsDao = new GoodsDao();
List<Goods> goods = goodsDao.getAllGoods();
goodsList = new JList<>(goods.toArray(new Goods[goods.size()]));
getContentPane().add(goodsList);
} catch (SQLException e) {
e.printStackTrace();
}
// 添加按钮
addButton = new JButton("添加");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AddDialog addDialog = new AddDialog(MainFrame.this, "添加商品", true);
addDialog.setVisible(true);
}
});
getContentPane().add(addButton);
// 删除按钮
deleteButton = new JButton("删除");
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int index = goodsList.getSelectedIndex();
if (index < 0) {
JOptionPane.showMessageDialog(MainFrame.this, "请选择要删除的商品!", "错误", JOptionPane.ERROR_MESSAGE);
} else {
Goods goods = goodsList.getSelectedValue();
try {
GoodsDao goodsDao = new GoodsDao();
if (goodsDao.deleteGoods(goods.getId())) {
JOptionPane.showMessageDialog(MainFrame.this, "删除成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
updateGoodsList();
} else {
JOptionPane.showMessageDialog(MainFrame.this, "删除失败!", "提示", JOptionPane.ERROR_MESSAGE);
}
} catch (SQLException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(MainFrame.this, "删除失败!", "提示", JOptionPane.ERROR_MESSAGE);
}
}
}
});
getContentPane().add(deleteButton);
}
// 刷新商品列表
private void updateGoodsList() {
DefaultListModel<Goods> listModel = new DefaultListModel<>();
try {
GoodsDao goodsDao = new GoodsDao();
List<Goods> goods = goodsDao.getAllGoods();
for (Goods item : goods) {
listModel.addElement(item);
}
goodsList.setModel(listModel);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- 查询商品模块
在查询商品模块中,用户可以通过输入关键字来搜索商品列表中名称或属性与该关键字相关的商品,并将搜索结果显示在界面上。具体实现参考下面的代码:
public class MainFrame extends JFrame {
// 窗口中的界面组件
private JTextField searchField;
private JList<Goods> goodsList;
private JButton searchButton;
public MainFrame() {
// 窗口初始化代码
// 搜索框
searchField = new JTextField(20);
getContentPane().add(searchField);
// 商品列表
try {
GoodsDao goodsDao = new GoodsDao();
List<Goods> goods = goodsDao.getAllGoods();
goodsList = new JList<>(goods.toArray(new Goods[goods.size()]));
getContentPane().add(goodsList);
} catch (SQLException e) {
e.printStackTrace();
}
// 搜索按钮
searchButton = new JButton("搜索");
searchButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String keyword = searchField.getText();
try {
GoodsDao goodsDao = new GoodsDao();
List<Goods> goods = goodsDao.searchGoods(keyword);
DefaultListModel<Goods> listModel = new DefaultListModel<>();
for (Goods item : goods) {
listModel.addElement(item);
}
goodsList.setModel(listModel);
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
getContentPane().add(searchButton);
}
}
这样我们就完成了“Java+swing+Mysql实现商品销售管理系统”的完整攻略。其中,涉及到的具体实现过程略微复杂,需要对 Java 语言、swing 工具包以及 Mysql 数据库进行深入的学习和理解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java+swing+Mysql实现商品销售管理系统 - Python技术站