从数据库里读出数据,并将其按照下拉框的选择填入表格

1、从数据库里读出数据,使用的是SLECT,然后将其存入结果集中。然后将结果集存到模型中,使用时再取出。这里的模型的变量必须和列名相对应,从数据库中读取出的是将整列的值依次添加到对应的变量中,要下拉框选择操作时,需要的某一行的数据,这时就需要每读取一行,就要进行下拉框的添加操作,如

private void updateSupperlierCombox(ResultSet set) {
		try {
			
			while (set.next()) {
				Supperlier spinfo = new Supperlier();//
				spinfo.setId(set.getString("Supplier_ID").trim());
				spinfo.setName(set.getString("Supplier_Name").trim());
				spinfo.setLinkman(set.getString("Linkman").trim());
				spinfo.setAd(set.getString("Supplier_address").trim());
				spinfo.setTel(set.getString("Telephone").trim());
				spinfo.setMail(set.getString("Email").trim());
				spinfo.setYe(set.getString("Supplier_salesman").trim());
				spinfo.setJibie(set.getString("Supplier_Type").trim());
				spinfo.setBeizhu(set.getString("Supplier_remarks").trim());
				
		/*		DefaultComboBoxModel model = (DefaultComboBoxModel) SupperlierCombox.getModel();
				if (model.getIndexOf(spinfo) < 0) // 返回指定对象在列表中的索引位置。不重复的商品名会被添加进去
				*/
					SupperlierCombox.addItem(spinfo); // 则添加选项
				
			}
		} catch (SQLException e1) {
			e1.printStackTrace();                                                             
		}
	}

这里SupperlierCombox.addItem()方法会自动调用toString,所以模型中要重写toString方法,将需要添加到下拉框的那一个变量作为其返回值,比如讲name作为下拉框,则重写实例如下

  
	public String toString() {
		return getName();
	}
这样就可以实现,每遍历一行,就会将其名字添加到下拉框中。

2、这里需要点击下拉框时就要进行下拉框的更新,即可添加响应如下

SupperlierCombox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ResultSet set = LoginPanel.findForResultSet("select * from Supplier");//根据供应商显示不同的商品下拉框
				SupperlierCombox.removeAllItems();
				updateSupperlierCombox(set);
			}
		});


3、要实现根据下拉框的选择,表格上显示对应的数据,这时就需要根据下拉框的选项变更,更新表格

首先需要添加下拉选项的响应,addItemListener,如下:

SupperlierCombox.addItemListener(new ItemListener() {
<span style="white-space:pre">			</span>public void itemStateChanged(ItemEvent e) {
<span style="white-space:pre">				</span>Supperlier info = (Supperlier) SupperlierCombox.getSelectedItem();
<span style="white-space:pre">				</span>// 如果选择有效就更新表格
<span style="white-space:pre">				</span>if (info != null && info.getName() != null) {
<span style="white-space:pre">					</span>updateTable();
<span style="white-space:pre">					</span>}
<span style="white-space:pre">				</span>}
<span style="white-space:pre">			</span>});

根据下拉框更新表格的代码如下:

private synchronized void updateTable() {
		Supperlier spinfo = (Supperlier) SupperlierCombox.getSelectedItem();//选中的商品名称
//		System.out.println(spinfo+"122");
		int row = table.getSelectedRow();
		if (row >= 0 && spinfo != null) {
	
			table.setValueAt(spinfo.getId(), row, 0);
			table.setValueAt(spinfo.getLinkman(), row, 2);
			table.setValueAt(spinfo.getAd(), row, 3);
			table.setValueAt(spinfo.getTel(), row, 4);
			table.setValueAt(spinfo.getMail(), row, 5);
			table.setValueAt(spinfo.getYe(), row, 6);
			table.setValueAt(spinfo.getJibie(), row, 7);
			table.setValueAt(spinfo.getBeizhu(), row, 8);
		
		}
	}
此处

Supperlier spinfo = (Supperlier) SupperlierCombox.getSelectedItem();//选中的商品名称
不是很理解,但是知道是将下拉选项名称实例化,后面的值的设定可以调用模型相应的值(这是讲具体对象转化为相应类对象的通用方法)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值