数据库课程设计-宿舍管理系统「建议收藏」

数据库课程设计-宿舍管理系统「建议收藏」最近写完了数据库的课程设计,想把整个源码的编辑过程发出来。程序很简单,需要有很多完善的地方,在这里,我想和大家分享写这个程序的心路历程。首先,在开始写程序之前。我们需要先写一些工具类,来辅助完成整个程序的构建,在这里我把连接jdbc的代码放在了一个包下面。如下图:在这里我们先来写最基本的类,jdbcDrive,这是负责和数据库进行连接,并且执行语句的类publ…

大家好,又见面了,我是你们的朋友全栈君。

 

最近写完了数据库的课程设计,想把整个源码的编辑过程发出来。程序很简单,需要有很多完善的地方,在这里,我想和大家分享写这个程序的心路历程。

首先,在开始写程序之前。我们需要先写一些工具类,来辅助完成整个程序的构建,在这里我把连接jdbc的代码放在了一个包下面。

如下图:

数据库课程设计-宿舍管理系统「建议收藏」

在这里我们先来写最基本的类,jdbcDrive,这是负责和数据库进行连接,并且执行语句的类

 

public class jdbcDrive {
	public static Connection connection;
	public static Statement statement;
	public static ResultSet  resultset;
	public static void jdbcConnection(){
  
  
		try {
		    connection = DriverManager.getConnection(jdbc.dbURL, jdbc.userName,jdbc.userPwd);
			System.out.println("连接数据库成功!");
			} catch (Exception e) {
			System.out.print("SQL Server连接失败!");
			}
	}
	
	public static void jdbcConnectionClose(){
		try {
			connection.close();
			System.out.println("数据库连接成功关闭");
		} catch (SQLException e) {
			System.out.println("数据库连接关闭失败");
		}
	}
	
	public static void jdbcExecuteUpdate(String s) throws SQLException{
		jdbcConnection();
		statement=connection.createStatement();
		statement.executeUpdate(s);
	}
	
	public static void jdbcExecuteQuery(String s) throws SQLException{
		jdbcConnection();
		statement=connection.createStatement();
		resultset=statement.executeQuery(s);
	}
	public static void main(String [] args) {
	}
}

在这里我选择的是SQL SERVER 2014,它的jdbc版本已经不需要加载数据库了,可以直接进行连接,在这里分为四个方法。其中两个是负责,数据库的连接和释放。jdbcExecuteUpdate负责传递SQL的增加,修改,删除,不需要有结果集的语句。jdbcExecuteQuery负责进行jdbc的查询,将查询的结果放在resultset里面。Connection类是负责进行数据库的连接,Statement 负责传递查询语句。resultset是结果集,负责保存储存的信息。

 

 

在进行数据的连接的时候,需要向数据库传递参数。我把参数放在了一个接口里面。

 

public interface jdbc {
    String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Dormitory";
	String userName = "sa";
	String userPwd = "123456";
}

写完基本的jdbc类之后,我们在进行整个系统的界面搭建。

 

设计主界面的时候,用到以下几个类,第一个是用于放置菜单选项的JMenuBar,它是放置JMenu的容器,而JMenu是房子JMenuItem的容器。具体的构建过程就是,在JFrame里添加JMenu,用来表示要放置的菜单选项,在JMenu里面放置JMeunItem用来表示菜单的子选项。其中,用了JLabel来存放图片。各个JMenuItem的监听事件放在了一个单独的包里面。具体的搭建界面如下:

数据库课程设计-宿舍管理系统「建议收藏」

 

 

public class Login extends JFrame {
	private JButton loginButton,exitButton;
	private JLabel userNameLabel,passwordLabel;
	private JTextField userNameText;
	private JPasswordField passwordText;
	private HandleAction handleAction;
	private static JPanel loginPanel;
	private ManagementUi MainUi;
	private Toolkit toolKit=null;
	private Dimension screenSize=null;
	public static personManage nowPeople;
	public  Login(){
		Init();
	}
	
	public void Init(){
		//获取当前窗口,并且获取屏幕的尺寸
		toolKit=Toolkit.getDefaultToolkit();
		screenSize=toolKit.getScreenSize();
		//加载封装了图片的Panel子类,并添加到当前JFrame容器里面
	    loginPanel=new LoginPanel();
		loginPanel.setLayout(null);
		add(loginPanel);
		//将整个图框居中
     	setBounds(screenSize.width/2-loginPanel.getWidth()/2
     			,screenSize.height/2-loginPanel.getHeight()/2
     			,loginPanel.getWidth(),loginPanel.getHeight());
		handleAction=new  HandleAction();
		this.setIconImage(new ImageIcon("resource/picture.png").getImage());
		//向loginPanel容器加入两个Jlabel,两个按钮,一个文本框,一个密码框
		userNameLabel=new JLabel("用户名");
		userNameLabel.setBounds(100, 120, 200, 18);
		loginPanel.add(userNameLabel);
		
		userNameText=new JTextField();
		userNameText.setBounds(150, 120, 150, 18);
		loginPanel.add(userNameText);
		
		passwordLabel=new JLabel("密码");
		passwordLabel.setBounds(100, 180, 200, 18);
		loginPanel.add(passwordLabel);
		
		passwordText=new JPasswordField();
		passwordText.setBounds(150, 180, 150, 18);
		loginPanel.add(passwordText);
		
		loginButton=new JButton("登录");
		loginButton.setBounds(150, 230, 60, 18);
		loginPanel.add(loginButton);
		
		exitButton=new JButton("退出");
		exitButton.setBounds(230, 230, 60, 18);
		loginPanel.add(exitButton);
		
		exitButton.addActionListener(handleAction);
		loginButton.addActionListener(handleAction);
		setTitle("宁悦宿舍管理系统");
		this.setResizable(false);
		setVisible(true);
		setDefaultCloseOperation(this.EXIT_ON_CLOSE);
	}
	private class HandleAction implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			if(e.getSource()==loginButton){
				String pass=new String(passwordText.getPassword());
				if(jdbcLogin.Judge(userNameText.getText(),pass)){
					nowPeople=new personManage(userNameText.getText(),null,null,pass);
					MainUi=new ManagementUi();
					Login.this.setVisible(false);
				}else{
					JOptionPane.showMessageDialog(Login.this,"不是系统的合法用户或密码错误" );
				}
				
			}else if(e.getSource()==exitButton) {
				Login.this.dispose();
			}
		}
	}
	
	public static void main(String [] args){
		Login in=new Login();
	}
}

class LoginPanel extends JPanel {
	protected ImageIcon icon = new ImageIcon("resource/login.jpg");
	public int width = icon.getIconWidth(), height = icon.getIconHeight();
	public LoginPanel() {
		super();
		setSize(width, height);
	}
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		Image img = icon.getImage();
		 g.drawImage(img, 0, 0, icon.getIconWidth(),
			      icon.getIconHeight(), icon.getImageObserver());
	}
}

搭建完界面之后,我们按这个顺序来进行代码编码,首先,编写管理员的登录界面,然后写学生的管理界面,在写宿舍的管理界面,最后写调宿的管理界面。

 

下面先来看登录界面的的截图:

 

数据库课程设计-宿舍管理系统「建议收藏」
 

下面是整个登录界面的源代码:

 

public class Login extends JFrame {
	private JButton loginButton,exitButton;
	private JLabel userNameLabel,passwordLabel;
	private JTextField userNameText;
	private JPasswordField passwordText;
	private HandleAction handleAction;
	private static JPanel loginPanel;
	private ManagementUi MainUi;
	private Toolkit toolKit=null;
	private Dimension screenSize=null;
	public static personManage nowPeople;
	public  Login(){
		Init();
	}
	
	public void Init(){
		//获取当前窗口,并且获取屏幕的尺寸
		toolKit=Toolkit.getDefaultToolkit();
		screenSize=toolKit.getScreenSize();
		//加载封装了图片的Panel子类,并添加到当前JFrame容器里面
	    loginPanel=new LoginPanel();
		loginPanel.setLayout(null);
		add(loginPanel);
		//将整个图框居中
     	setBounds(screenSize.width/2-loginPanel.getWidth()/2
     			,screenSize.height/2-loginPanel.getHeight()/2
     			,loginPanel.getWidth(),loginPanel.getHeight());
		handleAction=new  HandleAction();
		this.setIconImage(new ImageIcon("resource/picture.png").getImage());
		//向loginPanel容器加入两个Jlabel,两个按钮,一个文本框,一个密码框
		userNameLabel=new JLabel("用户名");
		userNameLabel.setBounds(100, 120, 200, 18);
		loginPanel.add(userNameLabel);
		
		userNameText=new JTextField();
		userNameText.setBounds(150, 120, 150, 18);
		loginPanel.add(userNameText);
		
		passwordLabel=new JLabel("密码");
		passwordLabel.setBounds(100, 180, 200, 18);
		loginPanel.add(passwordLabel);
		
		passwordText=new JPasswordField();
		passwordText.setBounds(150, 180, 150, 18);
		loginPanel.add(passwordText);
		
		loginButton=new JButton("登录");
		loginButton.setBounds(150, 230, 60, 18);
		loginPanel.add(loginButton);
		
		exitButton=new JButton("退出");
		exitButton.setBounds(230, 230, 60, 18);
		loginPanel.add(exitButton);
		
		exitButton.addActionListener(handleAction);
		loginButton.addActionListener(handleAction);
		setTitle("宁悦宿舍管理系统");
		this.setResizable(false);
		setVisible(true);
		setDefaultCloseOperation(this.EXIT_ON_CLOSE);
	}
	private class HandleAction implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			if(e.getSource()==loginButton){
				String pass=new String(passwordText.getPassword());
				if(jdbcLogin.Judge(userNameText.getText(),pass)){
					nowPeople=new personManage(userNameText.getText(),null,null,pass);
					MainUi=new ManagementUi();
					Login.this.setVisible(false);
				}else{
					JOptionPane.showMessageDialog(Login.this,"不是系统的合法用户或密码错误" );
				}
				
			}else if(e.getSource()==exitButton) {
				Login.this.dispose();
			}
		}
	}
	
	public static void main(String [] args){
		Login in=new Login();
	}
}

class LoginPanel extends JPanel {
	protected ImageIcon icon = new ImageIcon("resource/login.jpg");
	public int width = icon.getIconWidth(), height = icon.getIconHeight();
	public LoginPanel() {
		super();
		setSize(width, height);
	}
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		Image img = icon.getImage();
		 g.drawImage(img, 0, 0, icon.getIconWidth(),
			      icon.getIconHeight(), icon.getImageObserver());
	}
}

在的登录的时候,需要连接数据库,在登录模块,我专门为它建立了一个数据库的连接类,来进行数据库的建立。

 

 

 

public class jdbcLogin {
	private static HashMap<String,String> people=new HashMap<String,String>();
	public static boolean Judge(String user,String pass){
		String SQL = "SELECT * FROM personManage";
		boolean flag=false;
		try {
			jdbcDrive.jdbcConnection();
			jdbcDrive.statement=jdbcDrive.connection.createStatement();
			jdbcDrive.resultset=jdbcDrive.statement.executeQuery(SQL);
		    while (jdbcDrive.resultset.next()) {
		    	people.put(jdbcDrive.resultset.getString(1).trim(),jdbcDrive.resultset.getString(4).trim());
		    }
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			jdbcDrive.jdbcConnectionClose();
		}
		if(people.containsKey(user)){
			if(people.get(user).equals(pass)){
				flag=true;
			}
		}else{
			flag=false;
		}
		return flag;
	}
}

如果数据库存在对应的账号,则返回true,让用户登录,否则返回false。

 

数据库建立好了之后,需要进行管理人员的创立,修改,删除。

 

数据库课程设计-宿舍管理系统「建议收藏」

管理员的界面用表的形式,来进行相应的管理,管理的过程中,点击表中的数据,会相应的显示在下面的文本框里,在这里进行增删改查。每次完成曾删改查,都需要点击查询进行刷新,下面是整体的代码。

 

 

public class personManageUi {
	private JFrame mainJframe;
	private Container con;
	private JScrollPane JSpane;
	private MyJTable DataTable;
	private String [] names={"管理员账号","管理员姓名","管理员性别","管理人员密码"};
	private JButton btn_Query,btn_Modify,btn_Add,btn_Delete;
	private JPanel jpn;
	private JPanel messageJpn;
	private JTextField nameText,passText,sexText,idText;
	private personManage personChange;//保存要修改的数据的信息
	public personManageUi(){
		mainJframe=new JFrame("管理员管理");
		mainJframe.setSize(800, 600);
		mainJframe.setVisible(true);
		mainJframe.setResizable(false);
		mainJframe.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
		mainJframe.setLocation(screenSize.width/2-400, screenSize.height/2-300);
		con=mainJframe.getContentPane();
		con.setLayout(new GridLayout(3,1));
		DataTable=new MyJTable();
		DefaultTableModel df=new DefaultTableModel(names,0);
		df.setRowCount(20);
		DataTable.setModel(df);
		DataTable.addMouseListener(new table_selectActionListener());
		JSpane=new JScrollPane(DataTable);
		con.add(JSpane);
		messageJpn=new JPanel();
		messageJpn.setLayout(new GridBagLayout());
		setComponent(new JLabel("管理人员账号:"),0,0,1,1,false);
		idText=new JTextField();
		setComponent(idText,1,0,1,150,false);
		setComponent(new JLabel("管理人员姓名:"),2,0,1,1,false);
		nameText=new JTextField();
		setComponent(nameText,3,0,1,150,true);
		setComponent(new JLabel("管理人员性别:"),0,1,1,1,false);
		sexText=new JTextField();
		setComponent(sexText,1,1,1,150,false);
		setComponent(new JLabel("管理人员密码:"),2,1,1,1,false);
		passText=new JTextField();
		setComponent(passText,3,1,1,150,true);
		con.add(messageJpn);
		jpn=new JPanel();
		jpn.setLayout(new FlowLayout());
		con.add(jpn);
		btn_Add=new JButton("添加");
		btn_Add.addActionListener(new btn_AddActionListener());
		jpn.add(btn_Add);
		jpn.add(new JLabel("     "));
		btn_Query=new JButton("查询");
		btn_Query.addActionListener(new btn_QueryActionListener());
		jpn.add(btn_Query);
		jpn.add(new JLabel("     "));
		btn_Modify=new JButton("修改");
		btn_Modify.addActionListener(new btn_ModifyActionListener());
		jpn.add(btn_Modify);
		jpn.add(new JLabel("     "));
		btn_Delete=new JButton("删除");
		btn_Delete.addActionListener(new btn_DeleteActionListener());
		jpn.add(btn_Delete);
	}
	/*
	 * 完成查询按钮的监听事件
	 */
	private class btn_QueryActionListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			jdbcPersonManage jp=new jdbcPersonManage(null);
			personManage people;
			try {
				jp.personQuery();
			} catch (SQLException e1) {
				JOptionPane.showMessageDialog(mainJframe,"无法连接到数据库" );
			}finally{
				jdbcDrive.jdbcConnectionClose();
			}
			ArrayList<personManage> personlist=jp.getPersonlist();
			for(int i=0;i<personlist.size();i++){
				people=personlist.get(i);
				String [] data={people.getPersonManageId(),people.getPersonManageName(),
						people.getPersonManageSex(),"**********"};
				for(int j=0;j<4;j++){
					DataTable.setValueAt(data[j], i, j);
				}
			}
			for(int i=0;i<4;i++){
				DataTable.setValueAt("", personlist.size(), i);
			}
		}
	}	
	/*
	 * 完成对修改按钮的监听事件
	 */
	private class btn_ModifyActionListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			jdbcPersonManage jpm=new jdbcPersonManage(null);
			try{
			if(personChange.getPersonManageName()!=nameText.getText()){
					jpm.personModify(personChange.getPersonManageId(),
							"personManageName",nameText.getText());
			}
			if(personChange.getPersonManageSex()!=sexText.getText()){
				    jpm.personModify(personChange.getPersonManageId()
				    		, "personManageSex", sexText.getText());
			}
			if(personChange.getPersonManagepassword()!=passText.getText()){
				jpm.personModify(personChange.getPersonManagepassword()
			    		, "personManagepassword",passText.getText());
			}
			JOptionPane.showMessageDialog(mainJframe,"修改成功" );
			 idText.setText("");
             nameText.setText("");
             sexText.setText("");
             passText.setText("");
		}catch(Exception e1){
			System.out.println("修改失败");
			JOptionPane.showMessageDialog(mainJframe,"修改失败" );
		}finally{
			jdbcDrive.jdbcConnectionClose();
		}
	}
	}
	/*
	 * 完成对表格的监听事件
	 */
	private class table_selectActionListener extends  MouseAdapter{
		public void mouseClicked(MouseEvent event)
        {
                int row = DataTable.rowAtPoint(event.getPoint());
                if(row!=-1){
                personChange=new personManage.personManageBuild()
                		.addManageId((String) DataTable.getValueAt(row, 0))
                		.addManageName((String) DataTable.getValueAt(row, 1))
                		.addManageSex((String) DataTable.getValueAt(row, 2))
                		.addManagePass((String) DataTable.getValueAt(row, 3))
                		.CreateManageBuild();
                idText.setText(personChange.getPersonManageId());
                nameText.setText(personChange.getPersonManageName());
                sexText.setText(personChange.getPersonManageSex());
                passText.setText(personChange.getPersonManagepassword());
                }
        }
	}
	/*
	 * 完成对增加按钮的监听
	 */
	private class btn_AddActionListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			personManage p=new personManage
					.personManageBuild()
					.addManageId(idText.getText().trim())
					.addManageName(nameText.getText().trim())
					.addManageSex(sexText.getText().trim())
					.addManagePass(passText.getText().trim())
					.CreateManageBuild();
			jdbcPersonManage jpm;
			try {
				jpm = new jdbcPersonManage(p);
				jpm.personAdd();
				idText.setText("");
				nameText.setText("");
				passText.setText("");
				sexText.setText("");
				JOptionPane.showMessageDialog(mainJframe,"添加成功" );
			} catch (Exception e1) {
				JOptionPane.showMessageDialog(mainJframe,"无法连接到数据库" );
			}finally{
				jdbcDrive.jdbcConnectionClose();
			}
		}
	}
	/*
	 * 完成对删除按钮的监听
	 */
	private class btn_DeleteActionListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
	
			personManage p=new personManage
					.personManageBuild()
					.addManageId(idText.getText().trim())
					.CreateManageBuild();
			jdbcPersonManage jpm=
					new jdbcPersonManage(p);
			try {
				jpm.personDelete();
				idText.setText("");
				nameText.setText("");
				passText.setText("");
				sexText.setText("");
				JOptionPane.showMessageDialog(mainJframe, "删除成功");
			} catch (SQLException e1) {
				e1.printStackTrace();
				JOptionPane.showMessageDialog(mainJframe, "删除失败");
			}
		}
	}

	private void setComponent(JComponent component, int gridx, int gridy,
			int gridwidth, int ipadx, boolean fill) {
		final GridBagConstraints gridBagConstrains = new GridBagConstraints();
		gridBagConstrains.gridx = gridx;
		gridBagConstrains.gridy = gridy;
		gridBagConstrains.insets = new Insets(10, 15, 3, 1);
		if (gridwidth > 1)
			gridBagConstrains.gridwidth = gridwidth;
		if (ipadx > 0)
			gridBagConstrains.ipadx = ipadx;
		if (fill)
			gridBagConstrains.fill = GridBagConstraints.HORIZONTAL;
		messageJpn.add(component, gridBagConstrains);
	}
	public static void main(String [] args){
		new personManageUi();
	}
}

学生管理部分实现和这个差不多,需要说一下宿舍管理的部分,在宿舍管理的模块,借助树,来进行完整的修改。

 

 

数据库课程设计-宿舍管理系统「建议收藏」

具体的代码如下:

 

 

public class dormitoryUpdateUi extends JFrame{
	private JScrollPane JSPane;
	private JTree Tree;
	private JPanel panel;
	private DefaultMutableTreeNode tmpNode,root;
	private DefaultTreeModel insert;
	private ArrayList<Dormitory> dormitory;
	private JTextField id;
	private JTextField sex;
	private JTextField ynumber;
	private JTextField snumber;
	private JTextField student;
	private JTextField money;
	private JTextField note;
	private JButton btn_query,btn_Modify,btn_Delete;
	private String attribute;
	private String changeAttribute;
	public dormitoryUpdateUi(){
		this.setTitle("宿舍更新");
		this.setVisible(true);
		this.setSize(800, 600);
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setLayout(new BorderLayout());
		root=new DefaultMutableTreeNode("文赢13号楼                  ");
		insert=new DefaultTreeModel(root);
		Tree=new JTree(root);
		Tree.addTreeSelectionListener(new treeSelectActionListener());
		JSPane=new JScrollPane(Tree);
		this.add(JSPane, BorderLayout.WEST);
		panel=new JPanel();
		//panel.setPreferredSize(getPreferredSize());
		this.add(panel, BorderLayout.CENTER);
		panel.setLayout(new GridBagLayout());
		setComponent(new JLabel("宿舍号:"),0,0,1,1,false);
		id=new JTextField();
		id.addActionListener(new jf_ActionListener());
		setComponent(id,1,0,3,1,true);
		setComponent(new JLabel("住宿性别名:"),0,1,1,1,false);
		sex=new JTextField();
		sex.addActionListener(new jf_ActionListener());
		setComponent(sex,1,1,3,150,true);
		setComponent(new JLabel("应住人数:"),0,2,1,1,false);
		ynumber=new JTextField();
		ynumber.addActionListener(new jf_ActionListener());
		setComponent(ynumber,1,2,3,150,true);
		setComponent(new JLabel("实住人数:"),0,3,1,1,false);
		snumber=new JTextField();
		snumber.addActionListener(new jf_ActionListener());
		setComponent(snumber,1,3,3,150,true);
		setComponent(new JLabel("住宿费:"),0,4,1,1,false);
		money=new JTextField();
		money.addActionListener(new jf_ActionListener());
		setComponent(money,1,4,3,1,true);
		setComponent(new JLabel("舍长:"),0,5,1,1,false);
		student=new JTextField();
		student.addActionListener(new jf_ActionListener());
		setComponent(student,1,5,3,1,true);
		setComponent(new JLabel("备注"),0,6,1,1,false);
		note=new JTextField();
		note.addActionListener(new jf_ActionListener());
		setComponent(note,1,6,3,150,true);
		btn_query=new JButton("查询");
		btn_query.addActionListener(new btn_queryActionListener());
		setComponent(btn_query,0,7,1,1,false);
		btn_Modify=new JButton("修改");
		btn_Modify.addActionListener(new btn_ModifyActionListener());
		setComponent(btn_Modify,1,7,1,1,false);
		btn_Delete=new JButton("删除");
		btn_Delete.addActionListener(new btn_DeleteActionListener());
		setComponent(btn_Delete,2,7,1,1,false);
	}
	
	private class btn_queryActionListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			jdbcDormitory jd=new jdbcDormitory();
			HashMap<Integer,ArrayList<Dormitory> > number=new HashMap<Integer,ArrayList<Dormitory>>();
			ArrayList<Dormitory> floordormitory;
		    int temp;//统计楼数
			try {
				jd.dormitoryQuery("");
				dormitory=jd.getDormitory();
				for(Dormitory d:dormitory){
					temp=Integer.parseInt(d.getDormitoryId().substring(2,3));
					if(!number.containsKey(temp)){
						floordormitory=new ArrayList<Dormitory>();
						floordormitory.add(d);
						number.put(temp, floordormitory);
					}else{
					  number.get(temp).add(d);
					}
				}
				Object[] floors;
				floors=number.keySet().toArray();
				for(int i=0;i<floors.length;i++)
				{
					floordormitory=number.get(floors[i]);
					tmpNode=new DefaultMutableTreeNode(floors[i]+"楼");
					insert.insertNodeInto(tmpNode, root, 0);
					insert.reload();
					for(int j=0;j<floordormitory.size();j++){
						tmpNode.add(new DefaultMutableTreeNode(floordormitory.get(j).getDormitoryId()));
					}
					floordormitory=null;
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}finally{
				jdbcDrive.jdbcConnectionClose();
			}
		}
	}
	private class treeSelectActionListener implements TreeSelectionListener{
		@Override
		public void valueChanged(TreeSelectionEvent e) {
			if(e.getPath().getLastPathComponent().toString().length()==5){
			Dormitory d=null;
			String message=e.getPath().getLastPathComponent().toString();
			for(Dormitory dor: dormitory){
				if(dor.getDormitoryId().equals(message)){
					d=dor;
				}
			}
			 id.setText(d.getDormitoryId());
			 sex.setText(d.getDormitorySex());
		     ynumber.setText(d.getDormitoryPeople());
			 snumber.setText(d.getDormitoryPeopleNow());
			 student.setText(d.getStudentId());
			 money.setText(d.getMoney());
			 note.setText(d.getDormitoryNote());
			}
		}
	}
	
	private class btn_ModifyActionListener implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			jdbcDormitory jd=new jdbcDormitory();
			try{
				jd.dormitoryModify(id.getText().trim()
						, attribute,changeAttribute);
			JOptionPane.showMessageDialog(dormitoryUpdateUi.this,"修改成功" );
			id.setText("");
			sex.setText("");
		    ynumber.setText("");
		    snumber.setText("");
			student.setText("");
		    money.setText("");
			note.setText("");
		}catch(Exception e1){
			e1.printStackTrace();
			System.out.println("修改失败");
			JOptionPane.showMessageDialog(dormitoryUpdateUi.this,"修改失败" );
		}finally{
			jdbcDrive.jdbcConnectionClose();
		}
		}
	}
	
	private class jf_ActionListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			HashMap<JTextField,String> change=new HashMap<JTextField,String>();
			change.put(id, "Dnumber");
			change.put(sex, "Dsex");
			change.put(ynumber, "Dynumber ");
			change.put(snumber, "Dsnumber ");
			change.put(student, "Dstudent ");
			change.put(money, "Dmoney ");
			change.put(note, "Dnote");
			attribute=change.get((JTextField)e.getSource());
			changeAttribute=((JTextField)e.getSource()).getText().trim();
		}
	}
	private class btn_DeleteActionListener implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			Dormitory d=new Dormitory
					.DormitoryBuilder()
					.addDormitoryId(id.getText().trim())
					.CreateDormitory();
			jdbcDormitory js=new jdbcDormitory();
			try {
				js.dormitoryQuery("where Dnumber ="+"'"+""+d.getDormitoryId()+"'");
				if(Integer.parseInt(js.getDormitory().get(0).getDormitoryPeopleNow())!=0){
					JOptionPane.showMessageDialog(dormitoryUpdateUi.this, "宿舍有成员居住,无法删除");
				}else{
				js.dormitoryDelete(d);
				id.setText("");
				sex.setText("");
				ynumber.setText("");
				snumber.setText("");
				money.setText("");
				note.setText("");
				student.setText("");
				JOptionPane.showMessageDialog(dormitoryUpdateUi.this, "删除成功");
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
				JOptionPane.showMessageDialog(dormitoryUpdateUi.this, "删除失败");
			}
		}
		
	}
	private void setComponent(JComponent component, int gridx, int gridy,
			int gridwidth, int ipadx, boolean fill) {
		final GridBagConstraints gridBagConstrains = new GridBagConstraints();
		gridBagConstrains.gridx = gridx;
		gridBagConstrains.gridy = gridy;
		gridBagConstrains.insets = new Insets(20, 20, 3, 1);
		if (gridwidth > 1)
			gridBagConstrains.gridwidth = gridwidth;
		if (ipadx > 0)
			gridBagConstrains.ipadx = ipadx;
		if (fill)
			gridBagConstrains.fill = GridBagConstraints.HORIZONTAL;
		panel.add(component, gridBagConstrains);
	}
	public static void main(String [] args){
		dormitoryUpdateUi d=new dormitoryUpdateUi();
	}
}

 

 

 

 

 

下面是完整的源代码地址:

链接:https://pan.baidu.com/s/1zM-sDtoxR07bKydHBh996A 
提取码:anwn 
 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144266.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 个人电脑怎么架设FTP服务器全方案

    个人电脑怎么架设FTP服务器全方案1、架设FTP服务器1.1使用IIS架设FTP服务器如果只是想建立一个小型的同时在线用户数不超过10个的FTP服务器,且不会同时进行大流量的数据传输,则可以使用IIS5作为服务器软件来架设.这里我们对一下案例予以说明,大家借鉴:一台1.1.1安装IIS的FTP服务WindowsXP默认状态是不安装FTP服务的,需要手动添加安装,安装过程如下:(…

  • js中将json字符串转换成json对象_字符串零终止符

    js中将json字符串转换成json对象_字符串零终止符今天遇到一个奇怪的问题,解析二维码后获得了一个JSON字符串,将JSON字符串转换成JSON对象的时候报错了。报错如下:代码如下:检查了无数次数据,数据是JSON字符串,引号也都是英文的,就是莫名其妙的转换不了。最后无奈了,终于找到一个解决办法,不用JSON.parse(xx)转换,用eval(‘(‘+xx+’)’)方法转换,最终解决了这个问题,虽然我还是不明白为什么JSON.parse转换会报错,有知道原因的大神吗?解决方法:数据如下:language{“ID”:”98-FA-9B

  • ESP-Drone开源 Wi-Fi 无人机固件首次编译与错误排查

    ESP-Drone开源 Wi-Fi 无人机固件首次编译与错误排查**ESP-Drone原名ESP-Plane***代码仓库:[esp-drone](https://github.com/espressif/esp-drone)*中文文档:[gettingstarted](https://docs.espressif.com/projects/espressif-esp-drone/zh_CN/latest/index.html)*展示视频:[安装与试飞](https://b23.tv/hnLq8Z)

  • 永磁直流无刷电机驱动器_永磁直流无刷电机的优缺点

    永磁直流无刷电机驱动器_永磁直流无刷电机的优缺点现实生活中我们接触的电机包括很多种类,除部分特殊种类外,永磁电机均是利用定子与转子磁场相互作用的原理制成。其中,使用直流电源驱动的电机称为直流电机,直流电机又可细分为直流有刷电机和直流无刷电机(BLDC)。电刷,是区分“有刷”与“无刷”电机的关键,它是与换向器组合使用的电机组件,常见材质为金属和碳。带有换向器和电刷的电机称为有刷电机,使用电子电路实现换向功能的电机称为无刷电机。直流有刷电…

    2022年10月21日
  • 集成学习-Voting

    集成学习-Voting一、什么是集成学习集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。一般情况下,集成学习中的多个学习器都是同质的”弱学习器”。上面的描述来自百度百科,看定义的话知道是基于‘弱学习器’的,很多讲集成学习的教程都会先讲决策树,然后讲到随机森林和GBDT,也就是bagging和boosting,…

    2022年10月31日
  • iframe自适应高度_jquery取iframe文本

    iframe自适应高度_jquery取iframe文本超级简单的方法,也不用写什么判断浏览器高度、宽度啥的。下面的两种方法自选其一就行了。一个是放在和iframe同页面的,一个是放在test.html页面的。注意别放错地方了哦。iframe代码

    2022年10月12日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号