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

📄 cdadminpanel.java

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

public class CDAdminPanel extends JPanel
{
	final Font font = new Font("华文新魏", Font.PLAIN, 20);
	public static String name = "碟片维护";
	private JPanel workPanel;
	private JLabel label;
	private JTextField ID, film, number, country, times, players, remark;
	private JComboBox type;
	private JTable table;
	private JButton newButton, changeButton, showCDButton, cancelButton;
	private int num, row;
	private String query = "select filmID 编号, filmName 影片名, filmType"
				+ " 类型, CDNumber '片(集)数', country 国家, hireTimes 被租次数,"
				+ " players 主演, remark 备注 from films order by filmID desc";
	
	public CDAdminPanel(boolean add)
	{
		setLayout(new BorderLayout());
		JLabel title = new JLabel("碟片维护", JLabel.CENTER);
		title.setFont(font);
		add(title, BorderLayout.NORTH);
		workPanel = new JPanel();
		workPanel.setLayout(new GridLayout(4, 6, 5, 5));
		label = new JLabel("编号:", JLabel.CENTER);
		workPanel.add(label);
		ID = new JTextField();
		ID.setEditable(false);	
		workPanel.add(ID);
		label = new JLabel("片名:", JLabel.CENTER);
		workPanel.add(label);
		film = new JTextField();
		workPanel.add(film);
		label = new JLabel("类型:", JLabel.CENTER);
		workPanel.add(label);
		type = new JComboBox();
		type.addItem("动作片");
		type.addItem("爱情片");
		type.addItem("喜剧片");
		type.addItem("恐怖片");
		type.addItem("战争片");
		type.addItem("科幻片");
		type.addItem("动画片");
		type.addItem("连续剧");
		type.setMaximumRowCount(5);
		workPanel.add(type);
		label = new JLabel("片(集)数:", JLabel.CENTER);
		workPanel.add(label);
		number = new JTextField();
		workPanel.add(number);
		label = new JLabel("国家:", JLabel.CENTER);
		workPanel.add(label);
		country = new JTextField();
		workPanel.add(country);
		label = new JLabel("被租次数:", JLabel.CENTER);
		workPanel.add(label);
		times = new JTextField();
		workPanel.add(times);
		label = new JLabel("主演:(<50字)", JLabel.CENTER);
		workPanel.add(label);
		players = new JTextField();
		workPanel.add(players);
		label = new JLabel("备注:(<100字)", JLabel.CENTER);
		workPanel.add(label);
		remark = new JTextField();
		workPanel.add(remark);
		label = new JLabel();
		workPanel.add(label);
		label = new JLabel();
		workPanel.add(label);
		newButton = new JButton("我要添加影片");
		newButton.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent event)
				{
					if(event.getActionCommand().equals("我要添加影片"))
					{
						changeButton.setEnabled(false);
						table.setCellSelectionEnabled(false);
						setState(true);
						((JButton)event.getSource()).setText("确定");
						cancelButton.setEnabled(true);
					}
					else
					{
						if(film.getText().equals("") || number.getText().equals(""))
						{
							JOptionPane.showMessageDialog(CDAdminPanel.this,
								"请把影片的关键信息输入完整!", "信息错误", JOptionPane.ERROR_MESSAGE);
						}
						else
						{
							changeButton.setEnabled(true);
							table.setRowSelectionAllowed(true);
							String str = "insert into films (filmName, filmType, "
								+ "CDNumber, players, country, adminID, remark) values ("
								+ "'" + film.getText() + "', '" + type.getSelectedItem()
								+ "', '" + number.getText() + "', '" + players.getText()
								+ "', '" + country.getText() + "', '" + FilmHireSystem.tableModel.adminID
								+ "', '" + remark.getText() + "')";
							try
							{
								FilmHireSystem.tableModel.setAutoCommit(false);
								FilmHireSystem.tableModel.setExecute(str, query);
								for (int i = 1; i<=Integer.parseInt(number.getText()); i++)
								{
									str = "insert into CDs (CDno, filmID) values ('" + i + "', '" + (BigDecimal)FilmHireSystem.tableModel.getValueAt(0, 0) + "')";
									FilmHireSystem.tableModel.setExecute(str, query);
							    }
							    FilmHireSystem.tableModel.commit();
							}
							catch(SQLException sql)
							{
								JOptionPane.showMessageDialog(null, sql.getMessage(), 
									"数据库查询错误", JOptionPane.ERROR_MESSAGE);
								FilmHireSystem.tableModel.rollback();
								System.err.println(sql.getMessage());
							}
							FilmHireSystem.tableModel.setAutoCommit(true);
							queryFilm(true);
							((JButton)event.getSource()).setText("我要添加影片");
							setState(false);
						}
					}
				}
			}
		);
		workPanel.add(newButton);
		changeButton = new JButton("我要修改信息");
		changeButton.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent event)
				{
					if(event.getActionCommand().equals("我要修改信息"))
					{
						newButton.setEnabled(false);
						table.setCellSelectionEnabled(false);
						((JButton)event.getSource()).setText("确定");
						showCDButton.setEnabled(false);
						cancelButton.setEnabled(true);
						film.setEditable(true);
						type.setEnabled(true);
						number.setEditable(true);
						country.setEditable(true);
						players.setEditable(true);
						remark.setEditable(true);
						num = Integer.parseInt(number.getText());
						row = table.getSelectedRow();
					}
					else
					{
						if(film.getText().equals("") || number.getText().equals(""))
						{
							JOptionPane.showMessageDialog(CDAdminPanel.this,
								"请把影片的关键信息输入完整!", "信息错误", JOptionPane.ERROR_MESSAGE);
						}
						else
						{
							newButton.setEnabled(true);
							table.setRowSelectionAllowed(true);
							((JButton)event.getSource()).setText("我要修改信息");
							setState(false);
							String str = "update films set filmName = '" + film.getText()
								+ "', filmType = '" + type.getSelectedItem()
								+ "', CDNumber = '" + number.getText()
								+ "', players = '" + players.getText()
								+ "', country = '" + country.getText()
								+ "', remark = '" + remark.getText() + "' where filmID = '"
								+ ID.getText() + "'";
							try
							{
								FilmHireSystem.tableModel.setAutoCommit(false);
								FilmHireSystem.tableModel.setExecute(str, query);
								int n = Integer.parseInt(number.getText());
								if(n > num)
								{
									for (int i = num + 1; i<=n; i++)
									{
										str = "insert into CDs (CDno, filmID) values ('" + i + "', '" + ID.getText() + "')";
										FilmHireSystem.tableModel.setExecute(str, query);
								    }
								}
								else if(n < num)
								{
									str = "delete from CDs where CDno > " + n + " and filmID = '" + ID.getText() + "'";
									FilmHireSystem.tableModel.setExecute(str, query);
								}
							    FilmHireSystem.tableModel.commit();
							}
							catch(SQLException sql)
							{
								JOptionPane.showMessageDialog(null, sql.getMessage(), 
									"数据库查询错误", JOptionPane.ERROR_MESSAGE);
								FilmHireSystem.tableModel.rollback();
							}
							FilmHireSystem.tableModel.setAutoCommit(true);
							queryFilm(true);
							showInfo(row);
							table.setRowSelectionInterval(row, row);
						}
					}
				}
			}
		);
		workPanel.add(changeButton);
		showCDButton = new JButton("显示碟片编号");
		showCDButton.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent event)
				{
					if(event.getActionCommand().equals("显示碟片编号"))
					{
						showCDButton.setText("显示影片");
						newButton.setEnabled(false);
						changeButton.setEnabled(false);
						queryFilm(false);
						table.setCellSelectionEnabled(false);
					}
					else
					{
						showCDButton.setText("显示碟片编号");
						newButton.setEnabled(true);
						changeButton.setEnabled(true);
						queryFilm(true);
						table.setRowSelectionInterval(0, 0);
						showInfo(0);
						table.setRowSelectionAllowed(true);
					}
				}
			}
		);
		workPanel.add(showCDButton);
		cancelButton = new JButton("取消");
		cancelButton.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent event)
				{
					newButton.setText("我要添加影片");
					newButton.setEnabled(true);
					changeButton.setText("我要修改信息");
					changeButton.setEnabled(true);
					table.setRowSelectionAllowed(true);
					cancelButton.setEnabled(false);
					if(table.getRowCount() > 0 && table.getSelectedRow() != -1)showInfo(table.getSelectedRow());
					setState(false);
				}
			}
		);
		workPanel.add(cancelButton);
		add(workPanel, BorderLayout.CENTER);
		queryFilm(true);
		table = new JTable(FilmHireSystem.tableModel);
		table.getTableHeader().setReorderingAllowed(false);
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		table.setRowSelectionAllowed(true);
		table.addMouseListener(
			new MouseAdapter()
			{
				public void mouseReleased(MouseEvent event)
				{
					if(table.getRowSelectionAllowed())
					{
						showInfo(table.getSelectedRow());
					}
				}
			}
		);
		add(new JScrollPane(table), BorderLayout.SOUTH);
		setState(add);
	}
	
	private void queryFilm(boolean film)
	{
		try
		{
			if(film) FilmHireSystem.tableModel.setQuery(query);
			else 
			{
				String id = ID.getText();
				FilmHireSystem.tableModel.setQuery("select filmName 影片名, CDno 集号, CDID 碟片编号, CDs.state 状态 "
					+ "from films join CDs on films.filmID = CDs.filmID where films.filmID = '" + id + "'");
			}
		}
		catch(Exception exception)
		{
			JOptionPane.showMessageDialog(null, exception.getMessage());
			System.err.println("数据库查询错误:" + exception.getMessage());
		}
	}
	
	public void setState(boolean add)
	{
		if(add)
		{
			ID.setText("");
			film.setText("");
			film.setEditable(true);
			type.setEnabled(true);
			number.setText("");
			number.setEditable(true);
			country.setText("");
			country.setEditable(true);
			times.setText("0");
			times.setEditable(false);
			players.setText("");
			players.setEditable(true);
			remark.setText("");
			remark.setEditable(true);
			newButton.setText("确定");
			changeButton.setEnabled(false);
			showCDButton.setEnabled(false);
			table.setCellSelectionEnabled(false);
		}
		else
		{
			if(table.getRowCount() > 0 && table.getSelectedRow() == -1)
			{
				showInfo(0);
				table.setRowSelectionInterval(0, 0);
			}
			table.setRowSelectionAllowed(true);
			film.setEditable(false);
			type.setEnabled(false);
			number.setEditable(false);
			country.setEditable(false);
			times.setEditable(false);
			players.setEditable(false);
			remark.setEditable(false);
			if(table.getRowCount() > 0 && table.getSelectedRow() != -1)
				showCDButton.setEnabled(true);
			cancelButton.setEnabled(false);
		}
	}
	
	private void showInfo(int index)
	{
		ID.setText(table.getValueAt(index, 0).toString());
		film.setText(table.getValueAt(index, 1).toString());
		type.setSelectedItem(table.getValueAt(index, 2).toString());
		number.setText(table.getValueAt(index, 3).toString());
		country.setText(table.getValueAt(index, 4).toString());
		times.setText(table.getValueAt(index, 5).toString());
		players.setText(table.getValueAt(index, 6).toString());
		remark.setText(table.getValueAt(index, 7).toString());
	}	
}

⌨️ 快捷键说明

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