Swing-学生信息管理系统之查找学生信息

想要下载完整程序请移步:
https://download.csdn.net/download/ancientear/10550004
上次写的是登陆界面,登陆进去是有好几个功能的,添加,修改,删除,查询。

该文就先介绍下查找。

运行出来的界面是怎么样的呢?
这里写图片描述

这里写图片描述

这里写图片描述

在这里,只要输入学号就可以出现该学生的所有信息。在学生信息出现界面,还可以进行修改学生信息,本文主要是实现查找功能。

package com.sys.view;

import javax.swing.JDialog;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextField;

import com.sys.control.DiaListener;
import com.sys.control.FindListener;
import com.sys.control.TableListener;
import com.sys.control.UpdateListener;
import com.sys.data.StaticData;

import javax.swing.JDialog;

/*JDialog窗体是Swing组件中的对话框
JDialog窗体的功能是从一个窗体中弹出另一个窗体*/

import javax.swing.JDialog;
public class FindDialog extends JDialog{
	
	//JLabel 对象可以显示文本
	private JLabel id,name,sex,age,academy,address;
	public static JLabel err;
	public static JTextField t_id,t_name,t_sex,t_age,t_academy,t_address;
	private JButton ok,cancle;//定义两个按钮
	public static JComboBox cb_sex,cb_ac;//定义下拉菜单控件
	
	public FindDialog(){
		this.setAlwaysOnTop(true);//置顶
		this.setTitle("查找学生信息");//给顶部框加入字
		this.setLayout(null);//用户界面上的屏幕组件的格式布局
		this.setSize(580, 320);//定义这个查找弹窗的大小
		this.setLocationRelativeTo(null);//设置窗口相对于指定组件的位置,null代表的是居中
		int index = ManagerJpanel.jt.getSelectedRow();
	 

		
		//从StaticData.java中获取汉字内容并在此定义为标签,方便后续使用
		id = new JLabel(StaticData.S_ID+":");
		name = new JLabel(StaticData.S_NAME+":");
		sex = new JLabel(StaticData.S_SEX+":");
		age = new JLabel(StaticData.S_CLASS+":");
		academy = new JLabel(StaticData.S_ACADEMY+":");
		address = new JLabel(StaticData.S_address+":");
		
		
		err = new JLabel();
		t_age = new JTextField();
		t_id = new JTextField();
		t_name = new JTextField();
		t_address = new JTextField();
		cb_sex = new JComboBox();
		cb_ac = new JComboBox();
		
		
		ok = new JButton("查找");
		cancle = new JButton("取消");
		
		
		cb_sex.addItem("男");
		cb_sex.addItem("女");
		
		//把汉字的位置固定好
		
		/* setBounds(x,y,width,height)
		 *  x:组件在容器X轴上的起点 
		 * y:组件在容器Y轴上的起点 
		 * width:组件的长度 
		 * height:组件的高度
*/
		id.setBounds(30, 50, 30, 30);
		t_id.setBounds(80, 50, 100, 30);
		name.setBounds(200, 50, 30, 30);
		t_name.setBounds(250, 50, 100, 30);
		sex.setBounds(370, 50, 30, 30);
		cb_sex.setBounds(420, 50, 100, 30);
		
		//定义汉字后的提示框的位置
		age.setBounds(30, 100, 30, 30);
		t_age.setBounds(80, 100, 100, 30);
		academy.setBounds(200, 100, 30, 30);
		cb_ac.setBounds(250, 100, 100, 30);
		address.setBounds(370,100,30,30);
		t_address.setBounds(420,100,100,30);
		
		
 //在组合框或列表框中添加一个新数据项,并且可以指定数据项索引。
			cb_ac.addItem("计算机学院");
			cb_ac.addItem("经济管理学院");
			cb_ac.addItem("艺术学院");
			cb_ac.addItem("外国语学院");
			cb_ac.addItem("海洋学院");
			cb_ac.addItem("电信学院");
			cb_ac.addItem("机械学院");
		 
		err.setBounds(30, 150, 120, 30);
		err.setForeground(Color.RED);//设置前景色(在查询不到学生的时候,会出现红色提示)
		
		//在这里定义查找、取消的两个按钮位置
		ok.setBounds(250, 200, 100, 30);
		cancle.setBounds(350, 200, 100, 30);		
		
		
		ok.addActionListener(new FindListener());
		
		
		cancle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				TableListener.jd_u.dispose();
				 
			}
		});
		
		
		
		
		
		
		add(id);
		add(t_id);
		add(name);
		add(t_name);
		add(sex);
		add(cb_sex);
		add(age);
		add(t_age);
		add(academy);
		add(address);
		add(t_address);
		add(cb_ac);
		add(err);
		add(ok);
		//add(cancle);不知道哪里出了问题,这里的取消按钮一直出问题,就不弄这个了
		setVisible(true);
	}
}

点击查找后,应该怎么去处理输入的学号或其他信息呢?

这里写图片描述

package com.sys.control;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JDialog;


import com.sys.view.FindDialog;
import com.sys.view.ManagerJpanel;
import com.sys.view.QueryJDialog;

public class FindListener implements ActionListener{
	private JDialog err,masg;
	
	public void actionPerformed(ActionEvent e) {
		int index = ManagerJpanel.jt.getSelectedRow();
		String id = FindDialog.t_id.getText();//从id的输入框中得到文本信息

		if(id.equals("")){
			FindDialog.err.setText("学号不能为空!");
		}else{
		
			int count  =  ManagerJpanel.jt.getRowCount();//得到目前的学生信息的个数
			
			for(int i=0;i<count;i++){
			
				 try {	//异常处理
					 ManagerJpanel.jt.getValueAt(i, 0);
				    ManagerJpanel.jt.getValueAt(i, 0).toString();
				} catch (NullPointerException e2) {
					 
				  	FindDialog.err.setText("无查询结果!");	
					        break;
				}catch(Exception e1){
					continue;
				}
               
				 //如果匹配到相应的学号,则将该学生各项信息赋值给相应变量,供后续输出使用
				 if(ManagerJpanel.jt.getValueAt(i, 0).toString().equals(id.toString().trim())){
					    String s_id = ManagerJpanel.jt.getValueAt(i, 0).toString();
						String s_name = ManagerJpanel.jt.getValueAt(i, 1).toString();
						String s_sex = ManagerJpanel.jt.getValueAt(i, 2).toString();
						String s_age = ManagerJpanel.jt.getValueAt(i, 3).toString();
						String s_ac = ManagerJpanel.jt.getValueAt(i, 4).toString();
						String s_sp = ManagerJpanel.jt.getValueAt(i, 5).toString();
						
						String[][] list = new String[1][6];
						list[0]= new String[]{ s_id, s_name, s_sex ,s_age ,s_ac, s_sp};
						QueryJDialog dialog  = new QueryJDialog(list);
				
						dialog.setAlwaysOnTop(true);
						dialog.setLayout(null);
						dialog.setSize(1000, 320);
						dialog.setLocationRelativeTo(null);//设置窗口居中。
						dialog.setVisible(true);  
					          

						break;
				 }
			
			}
            
			 
		}
	}
}

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Αиcíеиτеǎг

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值