📄 addbook.java
字号:
package library.iframe;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import library.DBConnectOperation.Dbo;
import library.model.BookType;
import library.util.CreateIcon;
public class AddBook extends JInternalFrame {
private JTextField ISBN;
private JTextField name;
private JComboBox bookTypeComboBox;
private JTextField writer;
private JTextField translator;
private JTextField publisher;
private JTextField price;
private JFormattedTextField pubDate; //使用特定格式来输入日期
private JButton confirmButton;
private JButton cancelButton;
public AddBook(){
super();
setBounds(100, 100, 396, 300);
//((BorderLayout) getContentPane().getLayout()).setVgap(5);
setTitle("图书添加");
setIconifiable(true);
setClosable(true);
BorderLayout borderLayout=new BorderLayout();
getContentPane().setLayout(borderLayout);
//设置中央面板,添加用于图书录入的各种文本框及下拉列表
JPanel panelCenter=new JPanel();
GridLayout gridLayout=new GridLayout(0,4);
panelCenter.setLayout(gridLayout);
gridLayout.setVgap(5);
gridLayout.setHgap(5);
panelCenter.setLayout(gridLayout);
getContentPane().add(panelCenter);
JLabel labelISBN=new JLabel();
labelISBN.setText("图书条形码:");
labelISBN.setHorizontalAlignment(SwingConstants.RIGHT);
panelCenter.add(labelISBN);
ISBN=new JTextField("请输入13书号",13);
ISBN.addFocusListener(new FocusAdapter(){
public void focusLost(FocusEvent e){
if(ISBN.getText().length()!=13){
JOptionPane.showMessageDialog(null, "书号只能为13位,请重新输入!");
ISBN.setText("");
return;
}
else {
if(Dbo.selectBookISBN(ISBN.getText())!=null)
{
JOptionPane.showMessageDialog(null,"新添加的书号重复!");
ISBN.setText("");
return;
}
}
}
});
panelCenter.add(ISBN);
JLabel bookTypeInfo=new JLabel();
bookTypeInfo.setText("图书种类");
bookTypeInfo.setHorizontalAlignment(SwingConstants.RIGHT);
panelCenter.add(bookTypeInfo);
bookTypeComboBox=new JComboBox();
ArrayList arrayList=Dbo.selectBookCategory();
for(int i=0;i<arrayList.size();i++){
BookType bookType=(BookType)arrayList.get(i);
bookTypeComboBox.addItem(bookType);
}
panelCenter.add(bookTypeComboBox);
JLabel labelName=new JLabel();
labelName.setText("书名:");
labelName.setHorizontalAlignment(SwingConstants.RIGHT);
panelCenter.add(labelName);
name=new JTextField();
name.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e){
if(name.getText().length()>40){
JOptionPane.showMessageDialog(null, "书名不能超过40个字符");
name.setText("");
}
}
});
panelCenter.add(name);
JLabel labelWriter=new JLabel();
labelWriter.setText("作者:");
labelWriter.setHorizontalAlignment(SwingConstants.RIGHT);
panelCenter.add(labelWriter);
writer=new JTextField();
writer.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e){
if(writer.getText().length()>20){
JOptionPane.showMessageDialog(null, "作者不能超过20个字符");
writer.setText("");
}
}
});
panelCenter.add(writer);
JLabel labelTranslator=new JLabel();
labelTranslator.setText("译者:");
labelTranslator.setHorizontalAlignment(SwingConstants.RIGHT);
panelCenter.add(labelTranslator);
translator=new JTextField();
translator.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e){
if(translator.getText().length()>20){
JOptionPane.showMessageDialog(null, "译者不能超过20个字符");
translator.setText("");
}
}
});
panelCenter.add(translator);
JLabel labelPublisher=new JLabel();
labelPublisher.setText("出版社:");
labelPublisher.setHorizontalAlignment(SwingConstants.RIGHT);
panelCenter.add(labelPublisher);
publisher=new JTextField();
publisher.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e){
if(publisher.getText().length()>20){
JOptionPane.showMessageDialog(null, "出版社不能超过20个字符");
publisher.setText("");
}
}
});
panelCenter.add(publisher);
JLabel labelPubDate=new JLabel();
labelPubDate.setText("出版日期:");
labelPubDate.setHorizontalAlignment(SwingConstants.RIGHT);
panelCenter.add(labelPubDate);
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); //设置日期格式
pubDate=new JFormattedTextField(format); //按照指定格式编辑文本框
pubDate.setValue(new Date()); //设置文本框pubDate用来存储日期.
panelCenter.add(pubDate);
JLabel labelPrice=new JLabel();
labelPrice.setText("价格");
labelPrice.setHorizontalAlignment(SwingConstants.RIGHT);
panelCenter.add(labelPrice);
price=new JTextField();
price.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e){
try{
Float.parseFloat(price.getText());
}
catch(NumberFormatException se){
JOptionPane.showMessageDialog(null, "只能输入数字!请重新输入");
price.setText("");
}
}
});
panelCenter.add(price);
//添加顶部图片
JLabel labelTop=new JLabel();
labelTop.setIcon(CreateIcon.add("bookAdd.jpg"));
labelTop.setPreferredSize(new Dimension(396,80));
getContentPane().add(labelTop,BorderLayout.NORTH);
((BorderLayout) getContentPane().getLayout()).setVgap(5);
//设置底部按钮
JPanel panelBottom=new JPanel();
FlowLayout flowLayout=new FlowLayout();
flowLayout.setHgap(30);
panelBottom.setLayout(flowLayout);
getContentPane().add(panelBottom,BorderLayout.SOUTH);
confirmButton=new JButton();
confirmButton.setText("保存");
confirmButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(ISBN.getText().length()!=13){
JOptionPane.showMessageDialog(null,"书号必须为13位!");
return;
}
if(name.getText().length()==0){
JOptionPane.showMessageDialog(null,"书名不能为空!");
return;
}
if(publisher.getText().length()==0){
JOptionPane.showMessageDialog(null, "出版社不能为空!");
return;
}
if(price.getText().length()==0){
JOptionPane.showMessageDialog(null,"单价不能为空!");
return;
}
String ISBNTemp=ISBN.getText();
BookType bookCategory=(BookType)bookTypeComboBox.getSelectedItem();
int bookIdTemp=bookCategory.getId(); //获取图书类别id;
String bookNameTemp=name.getText();
String writerTemp=writer.getText();
String translatorTemp=translator.getText();
String publisherTemp=publisher.getText();
String pubDateTemp=pubDate.getText();
float priceTemp=Float.parseFloat(price.getText());
String sql="insert into tb_bookinfo values('"+ISBNTemp+"',"+bookIdTemp+",'"
+bookNameTemp+"','"+writerTemp+"','"+translatorTemp+"','"+publisherTemp+"','"
+pubDateTemp+"',"+priceTemp+")";
int i=Dbo.executeUpdate(sql);
if(i!=-1){
JOptionPane.showMessageDialog(null,"添加成功!");
Dbo.close();
name.setText("");
writer.setText("");
translator.setText("");
publisher.setText("");
pubDate.setText("");
price.setText("");
ISBN.setText("");
}
else{
JOptionPane.showMessageDialog(null, "添加失败,请检查数据源");
return;
}
}
});
panelBottom.add(confirmButton);
cancelButton=new JButton();
cancelButton.setText("返回");
cancelButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
dispose();
}
});
panelBottom.add(cancelButton);
setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -