学生管理系统之查询(Swing界面刷新重绘)

add加入组件之后调用
invalidate();
repaint();

方法
有时候可以在后面调用setVisible(true);
否则可能无法更新。
自己写的Java学生管理系统的查询功能可以参考一下

package 学生管理;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.HashMap;
import java.util.Map;
import javax.swing.*;

class tab{
	JTable table;
	JPanel p=new JPanel(new BorderLayout());
	String []tablehead= {"学号","姓名","专业","班级","性别"};	
	String [][]raw=new String[1][5];
	public tab(String sno,String sname,String sspecialty,String sclazz,String ssex) {
		raw[0][0]=sno;
		raw[0][1]=sname;
		raw[0][2]=sspecialty;
		raw[0][3]=sclazz;
		raw[0][4]=ssex;
		table = new JTable(raw,tablehead);
	    table.setForeground(Color.BLACK);                   // 字体颜色
	    table.setFont(new Font(null, Font.PLAIN, 14));      // 字体样式
	    table.setSelectionForeground(Color.DARK_GRAY);      // 选中后字体颜色
	    table.setSelectionBackground(Color.LIGHT_GRAY);     // 选中后字体背景
	    table.setGridColor(Color.gray);                     // 网格颜色
	    table.getTableHeader().setFont(new Font(null, Font.BOLD, 14));  // 设置表头名称字体样式
	    table.getTableHeader().setForeground(Color.RED);                // 设置表头名称字体颜色
	    table.getTableHeader().setResizingAllowed(false);               // 设置不允许手动改变列宽
	    table.getTableHeader().setReorderingAllowed(false);             // 设置不允许拖动重新排序各列	   
	    table.setRowHeight(30); // 设置行高 
	    table.setPreferredSize(new Dimension(400, 350));// 设置面板视口大小(超过该大小的行数据,需要拖动滚动条才能看到)
	    p.add(table.getTableHeader(), BorderLayout.NORTH);
        p.add(table, BorderLayout.SOUTH);
	}
}
public class find {
	JFrame m2=new JFrame("查询");
	private JPanel findp=new JPanel();
	private JTextField findt=new JTextField(20);	
	private JButton findb=new JButton("查询");
	private JLabel findl=new JLabel("请输入学生学号");	
	tab temp=new tab("","","","","");
	public find() {
		File student=new File("E:\\java学生管理\\student.txt");	
		m2.add(findp);	
		findb.addActionListener(new ActionListener() {
			@SuppressWarnings("unchecked")
			public void actionPerformed(ActionEvent e) {
				if(e.getSource()==findb) {
					String fi=findt.getText();
				if(fi.equals("")) {
					JOptionPane.showMessageDialog(m2, "学号为空,请输入学号");
				}else {
					try {
					ObjectInputStream ois=new ObjectInputStream(new FileInputStream(student));
					HashMap<String,student> sh=new HashMap<String,student>();
					sh=(HashMap<String,student>)ois.readObject();
					ois.close();	
					int mark=0;
					for (Map.Entry<String, student> item : sh.entrySet()) {
						if(item.getValue().getNo().equals(fi)) {
							mark=1;		
							m2.remove(temp.p);
							temp=new tab(item.getValue().getNo(),item.getValue().getName(),item.getValue().getSpecialty(),item.getValue().getClazz(),item.getValue().getSex());						    
						    findt.setText("");						
							m2.add(temp.p);
							m2.invalidate();
							m2.repaint();
							m2.setVisible(true);
							break;
						}						
					}
					if(mark==0) {
						JOptionPane.showMessageDialog(m2, "未找到该生信息");
						findt.setText("");
					}
					} catch (FileNotFoundException e1) {
						e1.printStackTrace();
					} catch (IOException e1) {
						e1.printStackTrace();
					}catch (ClassNotFoundException e1) {
						e1.printStackTrace();
					}
					}				
				}
			}
	    });
		findp.add(findl);
		findp.add(findt);
		findp.add(findb);
		m2.add(temp.p);		
		m2.setLayout(new FlowLayout(FlowLayout.CENTER));
		m2.setSize(500, 500);
		m2.setVisible(true);
		m2.setLocationRelativeTo(null);//将窗口显示在屏幕中央
//		m2.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		}
}

这个没加main方法,自行加上吧

csdn这个貌似没法上传视频:跳转B站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值