📄 addbooks.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 + -