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

📄 addbook.java

📁 Java Swing写的图书馆管理系统
💻 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 + -