第6套:大一-物流跟踪管理系统

本文详细介绍了如何在Java窗体应用中实现数据加载、删除和添加功能。通过DB.java和BaseDao.java类与数据库交互,实现了从数据库加载表格数据、删除选定行以及插入新记录的功能。用户界面包括删除和添加按钮,选中行删除需用户确认,添加新记录需填写完整信息。
摘要由CSDN通过智能技术生成

说明:
1.本文为Java窗体的功能实现(加载数据、删除一行数据、添加订单)
2.需要用到另外两个类 DB.java 和 BaseDao.java 两个类(该两类,详见前期文章 http://t.csdn.cn/7m4pk)
3.数据库的设计要求,详见试题
主界面:
在这里插入图片描述

功能一:程序一执行,表格加载数据

具体实现步骤如下2步:

1. 在主窗体代码的最顶部构造器中,增加编写如下代码(红色框内代码)

在这里插入图片描述

2. 自定义初始化表格数据的一个方法:(在构造器的下方编写,如上图:)

源代码如下:

//自定义的方法:用于初始化表格数据
	private void initTable(String sql) {
		// 1.准备好所有的数据,放入 data 中
		Vector data = new Vector();

		ResultSet rs = BaseDao.cx(sql); // 查询数据库
		try {
			while (rs.next()) {
				Vector line = new Vector(); // line 代表存放一行数据的集合
				
					int id = rs.getInt(1);   //分别从数据库中取出对应的值
					String name = rs.getString(2);
					double num = rs.getDouble(3);
					String oid = rs.getString(4);
					String desc = rs.getString(5);
				
				line.add(id);  //将上面获取到的每个数据放到行集合中
				line.add(name);
				line.add(num);
				line.add(oid);
				line.add(desc);

				data.add(line); // 将当前行存入大的data中
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

		// 2.准备好标题文字,放入 bt 中
		Vector bt = new Vector(); // bt 用于存放标题
		bt.add("编号");
		bt.add("商品名字");
		bt.add("商品价格");
		bt.add("订单编号");
		bt.add("订单描述");

		// 3.最终任务就是用上面准备好的 数据 和 标题 填充 表格
		jTable1.setModel(new DefaultTableModel(data, bt));

	}

功能二:删除按钮的功能

在这里插入图片描述

实现步骤

1. 在主窗体中双击删除按钮,会自动转到编写该按钮事件的代码:

在这里插入图片描述

2.在上面自动打开的代码方法体内编写删除的功能,代码如下:

在这里插入图片描述
源代码如下

	private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
		
		int rowCount = jTable1.getSelectedRowCount(); // 获取选中的行数,如果为0,则说明没有选中任何行
		if (rowCount == 0) {
			JOptionPane.showMessageDialog(null, "您未选择任何数据");  //弹出一个带有确定按钮的对话框
		} else {
			//弹出带有两个按钮:确定和取消的对话框,如果点击【确定】则返回值为0,点击【取消】返回值为1
			int isOk = JOptionPane.showConfirmDialog(null, "您确定要删除吗?", "删除确认",JOptionPane.YES_NO_OPTION);  
			if (isOk == 0) { // 如果值是 0 ,说明点击了确定要删除
				int selectedRow = jTable1.getSelectedRow(); // 获取选中行的索引
				int id = (Integer) jTable1.getModel()
						.getValueAt(selectedRow, 0); // 找到要删除的行的第一列,其实就是要删除的记录的主键
				String sql = "delete from tb_order where id=" + id; // 拿到主键值后,组装出删除的sql语句
				boolean zsg = BaseDao.zsg(sql); // 执行删除操作,并返回是否成功
				if (zsg) {
					JOptionPane.showMessageDialog(null, "删除成功!");

					// 删除后,调用表格初始化的方法,重新加载数据,使表格加载显示最新数据:
					initTable("select * from tb_order");
				} else {
					JOptionPane.showMessageDialog(null, "删除失败!");
				}
			}
		}
		
	}

功能三:添加 功能

实现步骤:

1. 首先把【添加窗体】的界面通过拖拽的方式创建好,并设置默认的关闭属性为 DISPOSE

在这里插入图片描述

2. 在【主窗体】点击【添加】按钮,用代码实现打开【添加窗体】:

在==【主窗体】==的【添加】按钮上双击,自动转到编写代码的地方,编写打开新窗体的代码:
在这里插入图片描述
双击上面按钮的空白区域,自动进入下面的代码区域:
在这里插入图片描述
编写代码如下:
在这里插入图片描述

3. 在【添加窗体】的【确认添加】按钮上编写处理程序:

在这里插入图片描述
双击以上按钮后,自动转到如下代码处:
在这里插入图片描述
编写代码如下图:
在这里插入图片描述
源代码:

	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
		
		// 1. 获取所有文本框的数据
		String name = jTextField1.getText(); // 获取商品名字。jTextField1是第一个输入框的名字(可以改名)
		String price = jTextField2.getText(); // 获取价格
		String oid = jTextField3.getText(); // 获取商品编号
		String desc = jTextField4.getText(); // 获取商品描述

		// 2.如果商品名、价格、商品编号有任意一个没填写,则给出提示
		if ("".equals(name) || "".equals(price) || "".equals(oid)) {
			JOptionPane.showMessageDialog(null, "请录入完整信息!");
		}
		// 3.如果所有的文本框都填写了,则进行插入操作:
		else {
			// 所有从文本输入框中获取到的内容都为String字符串类型,要想插入到数据库,必须与数据表中的数据类型一致。
			// 因此,需要对价格进行转换(数据库表中价格字段是小数类型)
			double pri = Double.parseDouble(price); // 将文本框获取的字符串转换为小数

			// 拼装sql插入语句:
			String sql = String.format(
					"insert into tb_order values(null,'%s',%f,'%s','%s')",
					name, pri, oid, desc);

			if (BaseDao.zsg(sql)) { // 真正的执行,并根据返回结果给出提示
				JOptionPane.showMessageDialog(null, "新增商品成功!");
				// this.setVisible(false); //隐藏当前窗体
				this.dispose(); // 销毁当前窗体(即 关闭新增窗口)
			} else {
				JOptionPane.showMessageDialog(null, "新增商品失败!");
			}
		}
	}

4. 返回主页按钮

可按照直接关闭当前窗体处理即可
在该按钮上双击,编写如下代码:this.dispose(); // 销毁当前窗体(即 关闭新增窗口)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值