⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hirepanel.java

📁 碟片出租系统,后台是SQL SERVER,联系编程时可以全部采用或者部分采用.
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class HirePanel extends JPanel
{
	private JLabel title;
	private final Font font = new Font("华文新魏", Font.PLAIN, 20);
	private JPanel centerPanel;
	private JTextField id, name;
	private JButton loginButton, hireButton;
	private JTable table;
	private String user, strname;
	private String query = "select hireAndBacks.CDID 碟片号, filmName 影片名, CDno 集号,"
		+ " hireTime 出租时间, givebackTime 归还时间, lesseeID 会员编号 from hireAndBacks join "
		+ "CDs on hireAndBacks.CDID = CDs.CDID join films on CDs.filmID = "
		+ "films.filmID where isback = 0";

	public HirePanel()
	{
		super();
		setLayout(new BorderLayout());
		title = new JLabel("碟片出租", JLabel.CENTER);
		title.setFont(font);
		add(title, BorderLayout.NORTH);
		centerPanel = new JPanel();
		title = new JLabel("会员编号:");
		centerPanel.add(title);
		id = new JTextField(6);
		centerPanel.add(id);
		title = new JLabel("会员姓名:");
		centerPanel.add(title);
		name = new JTextField(6);
		centerPanel.add(name);
		loginButton = new JButton("登录");
		loginButton.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent event)
				{
					if(id.getText().equals("") || name.getText().equals(""))
					{
						JOptionPane.showMessageDialog(HirePanel.this, "请输入完整的信息!");
					}
					else
					{
						String str = "select lesseeID from lessees where lesseeID = '"
						+ id.getText() + "' and lesseeName = '" + name.getText() + "'";
						query(str);
						if(table.getRowCount() == 1)
						{
							user = id.getText();
							strname = name.getText();
							centerPanel.removeAll();
							centerPanel.setSize(0, 0);
							addPanel();
							centerPanel.updateUI();
							query(query + " and lesseeID = '" + table.getValueAt(0, 0).toString() + "'");
						}
						else
						{
							query(query);
							JOptionPane.showMessageDialog(HirePanel.this, "此会员不存在!");
						}
					}
				}
			}
		);
		centerPanel.add(loginButton);
		centerPanel.setLayout(new FlowLayout());
		add(centerPanel, BorderLayout.CENTER);
		query(query);
		table = new JTable(FilmHireSystem.tableModel);
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		table.getTableHeader().setReorderingAllowed(false);
		table.addMouseListener(
			new MouseAdapter()
			{
				public void mousePressed(MouseEvent event)
				{
					table.setRowSelectionAllowed(true);
				}
				
				public void mouseReleased(MouseEvent event)
				{
					int n = table.getSelectedRowCount();
					int cds[] = table.getSelectedRows();
					for (int i = 0; i<n; i++)
					{
						if(table.getValueAt(cds[i], 3).toString().equals("被租"))
						{
							JOptionPane.showMessageDialog(HirePanel.this, "此碟片已经被租!");
							table.setCellSelectionEnabled(false);
							return;
						}
				    }
				}
			}
		);
		add(new JScrollPane(table), BorderLayout.SOUTH);
	}
	
	public void query(String query)
	{
		try
		{
			FilmHireSystem.tableModel.setQuery(query);
		}
		catch(Exception exception)
		{
			System.err.println("数据库查询错误:" + exception.getMessage());
		}
	}
	
	public void addPanel()
	{
		title = new JLabel(strname + ":   欢迎光临!");
		centerPanel.add(title);
		title = new JLabel("请输入要租影片编号:");
		centerPanel.add(title);
		id = new JTextField(6);
		centerPanel.add(id);
		loginButton = new JButton("显示碟片");
		loginButton.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent event)
				{
					if(id.getText().equals(""))
					{
						JOptionPane.showMessageDialog(HirePanel.this, "请输入影片编号:");
					}
					else
					{
						query("select filmName 影片名, CDno 集号, CDID 碟片编号 , CDs.state 状态 "
							+ "from films join CDs on films.filmID = CDs.filmID "
							+ "where films.filmID = '" + id.getText() + "'");
						if(table.getRowCount() == 0)
							JOptionPane.showMessageDialog(HirePanel.this, "此片不存在!");
						else hireButton.setEnabled(true);
					}
				}
			}
		);
		centerPanel.add(loginButton);
		hireButton = new JButton("租碟片");
		hireButton.setEnabled(false);
		hireButton.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent event)
				{
					if(table.getRowSelectionAllowed())
					{
						int n = table.getSelectedRowCount();
						if(n > 0)
						{
							int cds[] = table.getSelectedRows();
							FilmHireSystem.tableModel.setAutoCommit(false);
							try
							{
								String query = "select filmName 影片名, CDno 集号, CDID 碟片编号 , CDs.state 状态 "
									+ "from films join CDs on films.filmID = CDs.filmID "
									+ "where films.filmID = '" + id.getText() + "'";
								String exe = "";
								for (int i = 0; i<n; i++)
								{
									exe = "insert into hireAndBacks (lesseeID, CDID) values('" + user + "', '" + table.getValueAt(cds[i], 2).toString() + "')";
									FilmHireSystem.tableModel.setExecute(exe, query);
									exe = "update CDs set state = '被租' where CDID = '" + table.getValueAt(cds[i], 2).toString() + "'";
									FilmHireSystem.tableModel.setExecute(exe, query);
							    }
							    exe = "update films set hireTimes = hireTimes + 1 where filmName = '" + table.getValueAt(cds[0], 0).toString() + "'";
								FilmHireSystem.tableModel.setExecute(exe, query);
							    exe = "update lessees set hadHireNumber = hadHireNumber + " + n + " where lesseeID = '" + user + "'";
								FilmHireSystem.tableModel.setExecute(exe, "select hadHireNumber, canHireNumber from lessees join hireTypes on "
									+ "lessees.hireTypeID = hireTypes.hireTypeID where lesseeID = '" 
									+ user + "'");
								if(Integer.parseInt(table.getValueAt(0, 0).toString()) > Integer.parseInt(table.getValueAt(0, 1).toString()))
								{
									FilmHireSystem.tableModel.rollback();
									query(HirePanel.this.query + " and lesseeID = '" + user + "'");
									JOptionPane.showMessageDialog(HirePanel.this, "已经超过可租数目!");
								}
								query(HirePanel.this.query + " and lesseeID = '" + user + "'");
								FilmHireSystem.tableModel.commit();
							}
							catch(SQLException sql)
							{
								JOptionPane.showMessageDialog(null, sql.getMessage(), 
									"数据库查询错误", JOptionPane.ERROR_MESSAGE);
								FilmHireSystem.tableModel.rollback();
							}
							FilmHireSystem.tableModel.setAutoCommit(true);
							hireButton.setEnabled(false);
						}
						else
						{
							JOptionPane.showMessageDialog(HirePanel.this, "请选择碟片!");
						}
					}
					else
					{
						JOptionPane.showMessageDialog(HirePanel.this, "请选择碟片!");
					}
				}
			}
		);
		centerPanel.add(hireButton);
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -