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

📄 addbooks.java

📁 图书管理系统v1.0是使用JAVA语言开发的解决图书基本管理的一个应用程序。 该系统能够实现简单的图书和用户管理
💻 JAVA
字号:
package lib;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class AddBooks extends JInternalFrame {
	//for creating the North Panel
	private JPanel northPanel = new JPanel();
	//for creaing the North Label
	private JLabel northLabel = new JLabel("图书信息");

	//for creating the Center Panel
	private JPanel centerPanel = new JPanel();
	//for creating an Internal Panel in the center panel
	private JPanel informationLabelPanel = new JPanel();

	//for creating an array of JLabel
	private JLabel[] informationLabel = new JLabel[10];
	//for creating an array of String
	private String[] informationString = {
		" 图书主题: ", " 标题: ",
		" 作者: ", " 出版社: ",
		" Copyright: ", " 版本号: ", " 页数: ",
		" ISBN: ", " 总数: ", " 图书馆名: "
	};
	//for creating an Internal Panel in the center panel
	private JPanel informationTextFieldPanel = new JPanel();
	//for creating an array of JTextField
	private JTextField[] informationTextField = new JTextField[10];

	//for creating an Internal Panel in the center panel
	private JPanel insertInformationButtonPanel = new JPanel();
	//for creating a button
	private JButton insertInformationButton = new JButton("插入图书记录",new ImageIcon(ClassLoader.getSystemResource("images/add.gif")));

	//for creating South Panel
	private JPanel southPanel = new JPanel();
	//for creating a button
	private JButton OKButton = new JButton("退出",new ImageIcon(ClassLoader.getSystemResource("images/exit.gif")));

	//create objects from another classes for using them in the ActionListener
	private Books book;
	//for creating an array of string to store the data
	private String[] data;
	//for setting availble option to true
	private boolean availble = true;

	//for checking the information from the text field
	public boolean isCorrect() {
		data = new String[10];
		for (int i = 0; i < informationLabel.length; i++) {
			if (!informationTextField[i].getText().equals("")) {
				data[i] = informationTextField[i].getText();
			}
			else
				return false;
		}
		return true;
	}

	//for setting the array of JTextField to empty
	public void clearTextField() {
		for (int i = 0; i < informationTextField.length; i++)
			informationTextField[i].setText(null);
	}

	//constructor of addBooks
	public AddBooks() {
		//for setting the title for the internal frame
		super("添加图书", false, true, false, true);
		//for setting the icon
		setFrameIcon(new ImageIcon(ClassLoader.getSystemResource("images/Add16.gif")));
		//for getting the graphical user interface components display area
		Container cp = getContentPane();

		//for setting the layout
		northPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
		//for setting the font for the North Panel
		northLabel.setFont(new Font("Default", Font.BOLD, 14));
		//for adding the label in the North Panel
		northPanel.add(northLabel);
		//for adding the north panel to the container
		cp.add("North", northPanel);

		//for setting the layout
		centerPanel.setLayout(new BorderLayout());
		//for setting the border to the panel
		centerPanel.setBorder(BorderFactory.createTitledBorder("添加图书记录:"));
		//for setting the layout
		informationLabelPanel.setLayout(new GridLayout(10, 1, 1, 1));
		/***********************************************************************
		 * for adding the strings to the labels, for setting the font 		   *
		 * and adding these labels to the panel.							   *
		 * finally adding the panel to the container						   *
		 ***********************************************************************/
		for (int i = 0; i < informationLabel.length; i++) {
			informationLabelPanel.add(informationLabel[i] = new JLabel(informationString[i]));
			informationLabel[i].setFont(new Font("Default", Font.BOLD, 13));
		}
		centerPanel.add("West", informationLabelPanel);

		//for setting the layout
		informationTextFieldPanel.setLayout(new GridLayout(10, 1, 1, 1));
		/***********************************************************************
		 * for adding the strings to the labels, for setting the font 		   *
		 * and adding these labels to the panel.							   *
		 * finally adding the panel to the container						   *
		 ***********************************************************************/
		for (int i = 0; i < informationTextField.length; i++) {
			informationTextFieldPanel.add(informationTextField[i] = new JTextField(25));
			informationTextField[i].setFont(new Font("Default", Font.PLAIN, 13));
		}
		centerPanel.add("East", informationTextFieldPanel);

		/***********************************************************************
		 * for setting the layout for the panel,setting the font for the button*
		 * and adding the button to the panel.								   *
		 * finally adding the panel to the container						   *
		 ***********************************************************************/
		insertInformationButtonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
		insertInformationButton.setFont(new Font("Default", Font.BOLD, 13));
		insertInformationButtonPanel.add(insertInformationButton);
		centerPanel.add("South", insertInformationButtonPanel);
		cp.add("Center", centerPanel);

		/***********************************************************************
		 * for setting the layout for the panel,setting the font for the button*
		 * adding the button to the panel & setting the border.				   *
		 * finally adding the panel to the container						   *
		 ***********************************************************************/
		southPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
		OKButton.setFont(new Font("Default", Font.BOLD, 13));
		southPanel.add(OKButton);
		southPanel.setBorder(BorderFactory.createEtchedBorder());
		cp.add("South", southPanel);

		/***********************************************************************
		 * for adding the action listener to the button,first the text will be *
		 * taken from the JTextField[] and make the connection for database,   *
		 * after that update the table in the database with the new value      *
		 ***********************************************************************/
		insertInformationButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				//for checking if there is a missing information
				if (isCorrect()) {
					Thread runner = new Thread() {
						public void run() {
							book = new Books();
							//for checking if there is no double information in the database
							book.connection("SELECT BookID FROM Books WHERE ISBN = '" + data[7] + "'");
							String ISBN = book.getISBN();
							if (!data[7].equalsIgnoreCase(ISBN)) {
								book.update("INSERT INTO Books (Subject,Title,Author,Publisher,Copyright," +
								        "Edition,Pages,ISBN,NumberOfBooks,NumberOfAvailbleBooks,Library,Availble) VALUES ('" +
								        data[0] + "','" + data[1] + "','" + data[2] + "','" +
								        data[3] + "', " + data[4] + ", " + data[5] + ", " +
								        data[6] + ", '" + data[7] + "', " + data[8] + "," + data[8] + ",'" +
								        data[9] + "', " + availble + ")");
								//for setting the array of JTextField to empty
								clearTextField();
								Log log = new Log("\n"+"Add Book:"+data[0] + "," + data[1] + "," + data[2] + "," +
								        data[3] + ", " + data[4] + ", " + data[5] + ", " +
								        data[6] + ", " + data[7] + ", " + data[8] + "," +
								        data[9]);
								JOptionPane.showMessageDialog(null, "数据操作成功!", "信息", JOptionPane.YES_OPTION);
							}
							else
								JOptionPane.showMessageDialog(null, "图书记录已存在!", "出错", JOptionPane.ERROR_MESSAGE);
						}
					};
					runner.start();
				}
				//if there is a missing data, then display Message Dialog
				else
					JOptionPane.showMessageDialog(null, "请将信息填写完整", "警告", JOptionPane.WARNING_MESSAGE);
			}
		});
		//for adding the action listener for the button to dispose the frame
		OKButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				dispose();
			}
		});
		//for setting the visible to true
		setVisible(true);
		//show the internal frame
		pack();
	}
}

⌨️ 快捷键说明

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