Java tutorial
/* * Created by JFormDesigner on Tue Oct 21 12:08:39 NZDT 2014 */ package ppp.ui; import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; import com.jgoodies.forms.factories.*; import com.jgoodies.forms.layout.*; import ppp.model.*; /** * @author David Park */ public class Receptionist1 extends JFrame { private User currentEntry; private RegisteringUserClassToDB personQueries; private List<User> results; private int numberOfEntriesUser = 0; private int currentEntryIndexUser; private Book currentEntry1; private RegisteringUserClassToDB bookQueries; private List<Book> results1; private int numberOfEntriesBook = 0; private int currentEntryIndexBook; private static int activeUserID; private String activeUserEmail; private String userTypeName; Report report = new Report(); private int logoutCounter = 0; public Receptionist1(int activeUserID, String activeUserEmail, String userTypeName) { initComponents(); personQueries = new RegisteringUserClassToDB(); bookQueries = new RegisteringUserClassToDB(); this.activeUserID = activeUserID; this.activeUserEmail = activeUserEmail; this.userTypeName = userTypeName; label2.setText("Welcome :" + activeUserEmail); label3.setText("User Type: " + userTypeName); } // logout button closes current window and re-opens the login window private void logOutbuttonActionPerformed(ActionEvent e) { // TODO add your code here personQueries.close(); bookQueries.close(); Login newLogin = new Login(); LoginTime ex = new LoginTime(activeUserID); try { ex.setLogOUTTime(); } catch (SQLException e1) { e1.printStackTrace(); } this.dispose(); newLogin.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); newLogin.setSize(700, 600); newLogin.setVisible(true); this.logoutCounter = 1; } //adds user to db private void addUserButtonActionPerformed(ActionEvent e) { // TODO add your code here String sql = "SELECT COUNT(*) as userNumber FROM USERS WHERE EMAIL = ?"; int userNumber; try { Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, userEntryEmailText.getText()); ResultSet rs = ps.executeQuery(); rs.next(); userNumber = rs.getInt("userNumber"); System.out.print(userNumber); // checks for duplicate entries if (userNumber == 0) { int results = personQueries.addUser(userEntryfNameText.getText(), userEntrylNameText.getText(), String.valueOf(passwordField1.getPassword()), userEntryEmailText.getText(), userEntryAdressText.getText(), userEntryPhoneText.getText(), "Customer"); JOptionPane.showMessageDialog(this, "New User (" + userEntryEmailText.getText() + ") added!", "Person added", JOptionPane.PLAIN_MESSAGE); } else { JOptionPane.showMessageDialog(this, "Email " + userEntryEmailText.getText() + " is already used. Try different Email!", "Error", JOptionPane.ERROR_MESSAGE); } } catch (Exception ex) { ex.printStackTrace(); } } //gets input to search book by title private void searchTitleButtonActionPerformed(ActionEvent e) { // TODO add your code here results1 = bookQueries.getBookByTitle(searchTitleField.getText()); numberOfEntriesBook = results1.size(); if (numberOfEntriesBook != 0) { currentEntryIndexBook = 0; currentEntry1 = results1.get(currentEntryIndexBook); bookEntryTitleText.setText(currentEntry1.getTitle()); bookEntryAuthorText.setText(currentEntry1.getAuthor()); bookEntryISBNText.setText(currentEntry1.getIsbn()); bookEntryPublicText.setText(currentEntry1.getPublication()); bookEntryGenreCom.setSelectedIndex(currentEntry1.getGenreID() - 1); bookEntrySubjectCom.setSelectedIndex(currentEntry1.getSubjectId() - 2); bookEntryPdateText.setText(String.valueOf(currentEntry1.getPurchaseDate())); bookEntryShopnameText.setText(currentEntry1.getShopName()); bookEntryPriceText.setText(String.valueOf(currentEntry1.getPrice())); bookEntryDetailText.setText(currentEntry1.getDetail()); bookEntryStatusCom.setSelectedItem(currentEntry1.getStatus()); currentBookIndex.setText("" + (currentEntryIndexBook + 1)); nextBookButton.setEnabled(true); previousBookButton.setEnabled(true); } else { JOptionPane.showMessageDialog(this, "Sorry, No Book has been searched by using keyword", "No Book", JOptionPane.PLAIN_MESSAGE); } } //gets input to search author by keyword private void searchAuthorButtonActionPerformed(ActionEvent e) { // TODO add your code here results1 = bookQueries.getBookByAuthor(searchAuthorField.getText()); numberOfEntriesBook = results1.size(); if (numberOfEntriesBook != 0) { currentEntryIndexBook = 0; currentEntry1 = results1.get(currentEntryIndexBook); bookEntryTitleText.setText(currentEntry1.getTitle()); bookEntryAuthorText.setText(currentEntry1.getAuthor()); bookEntryISBNText.setText(currentEntry1.getIsbn()); bookEntryPublicText.setText(currentEntry1.getPublication()); bookEntryGenreCom.setSelectedIndex(currentEntry1.getGenreID() - 1); bookEntrySubjectCom.setSelectedIndex(currentEntry1.getSubjectId() - 2); bookEntryPdateText.setText(String.valueOf(currentEntry1.getPurchaseDate())); bookEntryShopnameText.setText(currentEntry1.getShopName()); bookEntryPriceText.setText(String.valueOf(currentEntry1.getPrice())); bookEntryDetailText.setText(currentEntry1.getDetail()); bookEntryStatusCom.setSelectedItem(currentEntry1.getStatus()); currentBookIndex.setText("" + (currentEntryIndexBook + 1)); nextBookButton.setEnabled(true); previousBookButton.setEnabled(true); } else { JOptionPane.showMessageDialog(this, "Sorry, No Book has been searched by using keyword", "No Book", JOptionPane.PLAIN_MESSAGE); } } //displays next book private void previousBookButtonActionPerformed(ActionEvent e) { // TODO add your code here currentEntryIndexBook--; if (currentEntryIndexBook < 0) currentEntryIndexBook = numberOfEntriesBook - 1; currentBookIndex.setText("" + (currentEntryIndexBook + 1)); currentBookIndexActionPerformed(e); } //gets input for current book private void currentBookIndexActionPerformed(ActionEvent e) { // TODO add your code here currentEntryIndexBook = (Integer.parseInt(currentBookIndex.getText()) - 1); if (numberOfEntriesBook != 0 && currentEntryIndexBook < numberOfEntriesBook) { currentEntry1 = results1.get(currentEntryIndexBook); bookEntryTitleText.setText(currentEntry1.getTitle()); bookEntryAuthorText.setText(currentEntry1.getAuthor()); bookEntryISBNText.setText(currentEntry1.getIsbn()); bookEntryPublicText.setText(currentEntry1.getPublication()); bookEntryGenreCom.setSelectedIndex(currentEntry1.getGenreID() - 1); bookEntrySubjectCom.setSelectedIndex(currentEntry1.getSubjectId() - 2); bookEntryPdateText.setText(String.valueOf(currentEntry1.getPurchaseDate())); bookEntryShopnameText.setText(currentEntry1.getShopName()); bookEntryPriceText.setText(String.valueOf(currentEntry1.getPrice())); bookEntryDetailText.setText(currentEntry1.getDetail()); bookEntryStatusCom.setSelectedItem(currentEntry1.getStatus()); maxIndexBook.setText("" + numberOfEntriesBook); currentBookIndex.setText("" + (currentEntryIndexBook + 1)); } } //displays next book private void nextBookButtonActionPerformed(ActionEvent e) { // TODO add your code here currentEntryIndexBook++; if (currentEntryIndexBook >= numberOfEntriesBook) currentEntryIndexBook = 0; currentBookIndex.setText("" + (currentEntryIndexBook + 1)); currentBookIndexActionPerformed(e); } //generates lending reports private void generateLendingButtonActionPerformed(ActionEvent e) { // TODO add your code here String userInput = (String) lendingCombo.getSelectedItem(); if (userInput == "Daily") { report.DailyBookLendingReport(); } else if (userInput == "Monthly") { report.MonthlyBookLendingReport(); } else if (userInput == "Annually") { report.AnnuallyBookLendingReport(); } } //generates fine reports private void generateFineButtonActionPerformed(ActionEvent e) { // TODO add your code here String userInput = (String) findCombo.getSelectedItem(); if (userInput == "Book lost") { report.BookLostReport(); } else if (userInput == "Late return") { report.LateReturnFineReport(); } else if (userInput == "User Fine") { report.UserFineReport(); } } //generates purchase reports private void generatePurchaseButtonActionPerformed(ActionEvent e) { // TODO add your code here String userInput = (String) bookPurchasedCom.getSelectedItem(); if (userInput == "By Shop") { report.BookPurchasedReportByShop(); } else if (userInput == "By Price") { report.BookPurchaseReporyByPrice(); } else if (userInput == "By Year(2014)") { report.BookPurchaseReportByYear14(); } else if (userInput == "By Year(2013)") { report.BookPurchaseReportByYear13(); } } //closes current window and opens login window private void thisWindowClosed(WindowEvent e) { // TODO add your code here personQueries.close(); bookQueries.close(); LoginTime ex = new LoginTime(activeUserID); try { ex.setLogOUTTime(); } catch (SQLException e1) { e1.printStackTrace(); } if (logoutCounter == 0) { Login newLogin = new Login(); newLogin.setSize(700, 600); newLogin.setVisible(true); } } //returns book and generates time returned private void returnBookButtonActionPerformed(ActionEvent e) { // TODO add your code here DateFormat df = new SimpleDateFormat("yy/MM/dd HH:mm:ss"); Date loginTime = new Date(); String formatReturnTime = df.format(loginTime.getTime()); int results1 = bookQueries.returnBook(formatReturnTime, currentEntry1.getBookID() ); bookQueries.updateStatusBookforRerurn(currentEntry1.getBookID()); if (results1 == 1) { JOptionPane.showMessageDialog(this, currentEntry1.getTitle() + " has been returned!!", "Return ", JOptionPane.PLAIN_MESSAGE); } else { JOptionPane.showMessageDialog(this, "Book is not Borrowed!", "Error", JOptionPane.PLAIN_MESSAGE); } emptyBookTextFieldActionPerformed(); } public void emptyBookTextFieldActionPerformed() { } private void initComponents() { // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents // Generated using JFormDesigner Evaluation license - David Park bannerPanel = new JPanel(); logOutbutton = new JButton(); bannerLabel = new JLabel(); label2 = new JLabel(); label3 = new JLabel(); mainPanel = new JTabbedPane(); userTapPanel = new JPanel(); userEntryPanel = new JPanel(); userEntryfName = new JLabel(); userEntryfNameText = new JTextField(); userEntrylname = new JLabel(); userEntrylNameText = new JTextField(); userEntryPwd = new JLabel(); passwordField1 = new JPasswordField(); userEntryPhone = new JLabel(); userEntryPhoneText = new JTextField(); userEntryEmai = new JLabel(); userEntryEmailText = new JTextField(); userEntryAdress = new JLabel(); userEntryAdressText = new JTextField(); addUserButton = new JButton(); bookTapPane = new JPanel(); searchBookPanel = new JPanel(); searchTitle = new JLabel(); searchTitleField = new JTextField(); searchTitleButton = new JButton(); searchAuthor = new JLabel(); searchAuthorField = new JTextField(); searchAuthorButton = new JButton(); bookEntryPanel = new JPanel(); bookEntryTitle = new JLabel(); bookEntryTitleText = new JTextField(); bookEntryAuthoer = new JLabel(); bookEntryAuthorText = new JTextField(); bookEntryISBN = new JLabel(); bookEntryISBNText = new JTextField(); bookEntryPublic = new JLabel(); bookEntryPublicText = new JTextField(); bookEntryGenre = new JLabel(); bookEntryGenreCom = new JComboBox(); bookEntrySubject = new JLabel(); bookEntrySubjectCom = new JComboBox(); bookEntryPdate = new JLabel(); bookEntryPdateText = new JTextField(); bookEntryShopname = new JLabel(); bookEntryShopnameText = new JTextField(); bookEntryPrice = new JLabel(); bookEntryPriceText = new JTextField(); bookEntryDetail = new JLabel(); bookEntryDetailText = new JTextField(); bookEntryStatus = new JLabel(); bookEntryStatusCom = new JComboBox(); navigationBookPane = new JPanel(); previousBookButton = new JButton(); currentBookIndex = new JTextField(); bookOflabel = new JLabel(); maxIndexBook = new JTextField(); nextBookButton = new JButton(); returnBookButton = new JButton(); rePortPanel = new JPanel(); reportPanel = new JPanel(); bookLendingLabel = new JLabel(); fineReportLabel = new JLabel(); lendingCombo = new JComboBox(); findCombo = new JComboBox(); generateLendingButton = new JButton(); generateFineButton = new JButton(); bookPurchasedLabel = new JLabel(); bookPurchasedCom = new JComboBox(); generatePurchaseButton = new JButton(); //======== this ======== addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { thisWindowClosed(e); } }); Container contentPane = getContentPane(); contentPane.setLayout(null); //======== bannerPanel ======== { bannerPanel.setBorder(new EmptyBorder(12, 12, 12, 12)); bannerPanel.setLayout(null); //---- logOutbutton ---- logOutbutton.setText("LogOut"); logOutbutton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { logOutbuttonActionPerformed(e); } }); bannerPanel.add(logOutbutton); logOutbutton.setBounds(new Rectangle(new Point(180, 40), logOutbutton.getPreferredSize())); //---- bannerLabel ---- bannerLabel.setText("Welcome to Maero Library Management System!"); bannerLabel.setFont(new Font("Lucida Grande", Font.ITALIC, 20)); bannerPanel.add(bannerLabel); bannerLabel.setBounds(300, 5, 475, 65); //---- label2 ---- label2.setText("text"); bannerPanel.add(label2); label2.setBounds(10, 10, 200, 30); //---- label3 ---- label3.setText("text"); bannerPanel.add(label3); label3.setBounds(10, 45, 200, 25); { // compute preferred size Dimension preferredSize = new Dimension(); for (int i = 0; i < bannerPanel.getComponentCount(); i++) { Rectangle bounds = bannerPanel.getComponent(i).getBounds(); preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width); preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height); } Insets insets = bannerPanel.getInsets(); preferredSize.width += insets.right; preferredSize.height += insets.bottom; bannerPanel.setMinimumSize(preferredSize); bannerPanel.setPreferredSize(preferredSize); } } contentPane.add(bannerPanel); bannerPanel.setBounds(65, 10, 785, 75); //======== mainPanel ======== { //======== userTapPanel ======== { userTapPanel.setLayout(null); //======== userEntryPanel ======== { userEntryPanel.setBorder(new TitledBorder("Register Customer")); userEntryPanel.setLayout(new GridLayout(6, 4)); //---- userEntryfName ---- userEntryfName.setText("FirstName"); userEntryfName.setHorizontalAlignment(SwingConstants.CENTER); userEntryPanel.add(userEntryfName); userEntryPanel.add(userEntryfNameText); //---- userEntrylname ---- userEntrylname.setText("LasrName"); userEntrylname.setHorizontalAlignment(SwingConstants.CENTER); userEntryPanel.add(userEntrylname); userEntryPanel.add(userEntrylNameText); //---- userEntryPwd ---- userEntryPwd.setText("Password"); userEntryPwd.setHorizontalAlignment(SwingConstants.CENTER); userEntryPanel.add(userEntryPwd); userEntryPanel.add(passwordField1); //---- userEntryPhone ---- userEntryPhone.setText("PhoneNumber"); userEntryPhone.setHorizontalAlignment(SwingConstants.CENTER); userEntryPanel.add(userEntryPhone); userEntryPanel.add(userEntryPhoneText); //---- userEntryEmai ---- userEntryEmai.setText("Email"); userEntryEmai.setHorizontalAlignment(SwingConstants.CENTER); userEntryPanel.add(userEntryEmai); userEntryPanel.add(userEntryEmailText); //---- userEntryAdress ---- userEntryAdress.setText("Adress"); userEntryAdress.setHorizontalAlignment(SwingConstants.CENTER); userEntryPanel.add(userEntryAdress); userEntryPanel.add(userEntryAdressText); } userTapPanel.add(userEntryPanel); userEntryPanel.setBounds(35, 80, 785, 265); //---- addUserButton ---- addUserButton.setText("Add User"); addUserButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { addUserButtonActionPerformed(e); } }); userTapPanel.add(addUserButton); addUserButton.setBounds(375, 385, 140, 30); } mainPanel.addTab("Register User", userTapPanel); //======== bookTapPane ======== { bookTapPane.setLayout(null); //======== searchBookPanel ======== { searchBookPanel.setBorder( new CompoundBorder(new TitledBorder("Search Book by Keyword"), Borders.DLU2)); searchBookPanel.setLayout(new GridLayout(2, 3)); //---- searchTitle ---- searchTitle.setText("Title"); searchTitle.setHorizontalAlignment(SwingConstants.CENTER); searchBookPanel.add(searchTitle); //---- searchTitleField ---- searchTitleField.setMaximumSize(new Dimension(120, 50)); searchBookPanel.add(searchTitleField); //---- searchTitleButton ---- searchTitleButton.setText("Search"); searchTitleButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { searchTitleButtonActionPerformed(e); } }); searchBookPanel.add(searchTitleButton); //---- searchAuthor ---- searchAuthor.setText("Author"); searchAuthor.setHorizontalAlignment(SwingConstants.CENTER); searchBookPanel.add(searchAuthor); searchBookPanel.add(searchAuthorField); //---- searchAuthorButton ---- searchAuthorButton.setText("Search"); searchAuthorButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { searchAuthorButtonActionPerformed(e); } }); searchBookPanel.add(searchAuthorButton); } bookTapPane.add(searchBookPanel); searchBookPanel.setBounds(40, 15, 765, 140); //======== bookEntryPanel ======== { bookEntryPanel.setBorder(new CompoundBorder(new TitledBorder("Entry"), Borders.DLU2)); bookEntryPanel.setLayout(new GridLayout(6, 4, 2, 3)); //---- bookEntryTitle ---- bookEntryTitle.setText("Title"); bookEntryTitle.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryTitle); //---- bookEntryTitleText ---- bookEntryTitleText.setEditable(false); bookEntryPanel.add(bookEntryTitleText); //---- bookEntryAuthoer ---- bookEntryAuthoer.setText("Author"); bookEntryAuthoer.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryAuthoer); //---- bookEntryAuthorText ---- bookEntryAuthorText.setEditable(false); bookEntryPanel.add(bookEntryAuthorText); //---- bookEntryISBN ---- bookEntryISBN.setText("ISBN"); bookEntryISBN.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryISBN); //---- bookEntryISBNText ---- bookEntryISBNText.setEditable(false); bookEntryPanel.add(bookEntryISBNText); //---- bookEntryPublic ---- bookEntryPublic.setText("Publication"); bookEntryPublic.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryPublic); //---- bookEntryPublicText ---- bookEntryPublicText.setEditable(false); bookEntryPanel.add(bookEntryPublicText); //---- bookEntryGenre ---- bookEntryGenre.setText("Genre"); bookEntryGenre.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryGenre); //---- bookEntryGenreCom ---- bookEntryGenreCom.setModel(new DefaultComboBoxModel(new String[] { "Fiction", "Non-Fiction" })); bookEntryPanel.add(bookEntryGenreCom); //---- bookEntrySubject ---- bookEntrySubject.setText("Subject"); bookEntrySubject.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntrySubject); //---- bookEntrySubjectCom ---- bookEntrySubjectCom.setModel(new DefaultComboBoxModel(new String[] { "Classic", "Comedy", "Tragedy", "Mythology", "Poetry", "Crime", "Thriller", "Horror", "Mystery", "Historical_Fiction", "Fantasy", "Urban-Fantasy", "Science_Fiction", "Military", "Western", "Romance", "Biography", "Auto-Biography", "Essay", "Narrative", "Speech", "Textbook", "Reference", "Religious_Text" })); bookEntryPanel.add(bookEntrySubjectCom); //---- bookEntryPdate ---- bookEntryPdate.setText("Purchase Date"); bookEntryPdate.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryPdate); //---- bookEntryPdateText ---- bookEntryPdateText.setEditable(false); bookEntryPanel.add(bookEntryPdateText); //---- bookEntryShopname ---- bookEntryShopname.setText("Shop Name"); bookEntryShopname.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryShopname); //---- bookEntryShopnameText ---- bookEntryShopnameText.setEditable(false); bookEntryPanel.add(bookEntryShopnameText); //---- bookEntryPrice ---- bookEntryPrice.setText("Price"); bookEntryPrice.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryPrice); //---- bookEntryPriceText ---- bookEntryPriceText.setEditable(false); bookEntryPanel.add(bookEntryPriceText); //---- bookEntryDetail ---- bookEntryDetail.setText("Detail"); bookEntryDetail.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryDetail); //---- bookEntryDetailText ---- bookEntryDetailText.setEditable(false); bookEntryPanel.add(bookEntryDetailText); //---- bookEntryStatus ---- bookEntryStatus.setText("Status"); bookEntryStatus.setHorizontalAlignment(SwingConstants.CENTER); bookEntryPanel.add(bookEntryStatus); //---- bookEntryStatusCom ---- bookEntryStatusCom.setModel(new DefaultComboBoxModel( new String[] { "AVAILABLE", "UNAVAILABLE", "Lost", "Damaged" })); bookEntryPanel.add(bookEntryStatusCom); } bookTapPane.add(bookEntryPanel); bookEntryPanel.setBounds(40, 165, 770, 270); //======== navigationBookPane ======== { navigationBookPane.setLayout(new FlowLayout()); //---- previousBookButton ---- previousBookButton.setText("Previous"); previousBookButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { previousBookButtonActionPerformed(e); } }); navigationBookPane.add(previousBookButton); //---- currentBookIndex ---- currentBookIndex.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { currentBookIndexActionPerformed(e); } }); navigationBookPane.add(currentBookIndex); //---- bookOflabel ---- bookOflabel.setText("of"); navigationBookPane.add(bookOflabel); navigationBookPane.add(maxIndexBook); //---- nextBookButton ---- nextBookButton.setText("Next"); nextBookButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { nextBookButtonActionPerformed(e); } }); navigationBookPane.add(nextBookButton); } bookTapPane.add(navigationBookPane); navigationBookPane.setBounds(270, 435, 325, 40); //---- returnBookButton ---- returnBookButton.setText("Return a Book"); returnBookButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { returnBookButtonActionPerformed(e); } }); bookTapPane.add(returnBookButton); returnBookButton.setBounds(370, 480, 150, 30); { // compute preferred size Dimension preferredSize = new Dimension(); for (int i = 0; i < bookTapPane.getComponentCount(); i++) { Rectangle bounds = bookTapPane.getComponent(i).getBounds(); preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width); preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height); } Insets insets = bookTapPane.getInsets(); preferredSize.width += insets.right; preferredSize.height += insets.bottom; bookTapPane.setMinimumSize(preferredSize); bookTapPane.setPreferredSize(preferredSize); } } mainPanel.addTab("Return Book", bookTapPane); //======== rePortPanel ======== { rePortPanel.setLayout(new GridBagLayout()); ((GridBagLayout) rePortPanel.getLayout()).columnWidths = new int[] { 0, 0 }; ((GridBagLayout) rePortPanel.getLayout()).rowHeights = new int[] { 0, 0 }; ((GridBagLayout) rePortPanel.getLayout()).columnWeights = new double[] { 1.0, 1.0E-4 }; ((GridBagLayout) rePortPanel.getLayout()).rowWeights = new double[] { 1.0, 1.0E-4 }; //======== reportPanel ======== { reportPanel.setLayout(null); //---- bookLendingLabel ---- bookLendingLabel.setText("Book Lending Report"); reportPanel.add(bookLendingLabel); bookLendingLabel .setBounds(new Rectangle(new Point(170, 190), bookLendingLabel.getPreferredSize())); //---- fineReportLabel ---- fineReportLabel.setText("Fine Report"); reportPanel.add(fineReportLabel); fineReportLabel.setBounds(170, 240, 150, fineReportLabel.getPreferredSize().height); //---- lendingCombo ---- lendingCombo .setModel(new DefaultComboBoxModel(new String[] { "Daily", "Monthly", "Annually" })); reportPanel.add(lendingCombo); lendingCombo.setBounds(330, 185, 125, lendingCombo.getPreferredSize().height); //---- findCombo ---- findCombo.setModel( new DefaultComboBoxModel(new String[] { "Book lost", "Late return", "User Fine" })); reportPanel.add(findCombo); findCombo.setBounds(330, 235, 125, findCombo.getPreferredSize().height); //---- generateLendingButton ---- generateLendingButton.setText("Generate Report"); generateLendingButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { generateLendingButtonActionPerformed(e); } }); reportPanel.add(generateLendingButton); generateLendingButton.setBounds( new Rectangle(new Point(480, 180), generateLendingButton.getPreferredSize())); //---- generateFineButton ---- generateFineButton.setText("Generate Report"); generateFineButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { generateFineButtonActionPerformed(e); } }); reportPanel.add(generateFineButton); generateFineButton .setBounds(new Rectangle(new Point(480, 230), generateFineButton.getPreferredSize())); //---- bookPurchasedLabel ---- bookPurchasedLabel.setText("Book Purchased Report"); reportPanel.add(bookPurchasedLabel); bookPurchasedLabel .setBounds(new Rectangle(new Point(170, 290), bookPurchasedLabel.getPreferredSize())); //---- bookPurchasedCom ---- bookPurchasedCom.setModel(new DefaultComboBoxModel( new String[] { "By Shop", "By Price", "By Year(2014)", "By Year(2013)" })); reportPanel.add(bookPurchasedCom); bookPurchasedCom.setBounds(330, 285, 125, bookPurchasedCom.getPreferredSize().height); //---- generatePurchaseButton ---- generatePurchaseButton.setText("Generate Report"); generatePurchaseButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { generatePurchaseButtonActionPerformed(e); } }); reportPanel.add(generatePurchaseButton); generatePurchaseButton.setBounds( new Rectangle(new Point(480, 280), generatePurchaseButton.getPreferredSize())); { // compute preferred size Dimension preferredSize = new Dimension(); for (int i = 0; i < reportPanel.getComponentCount(); i++) { Rectangle bounds = reportPanel.getComponent(i).getBounds(); preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width); preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height); } Insets insets = reportPanel.getInsets(); preferredSize.width += insets.right; preferredSize.height += insets.bottom; reportPanel.setMinimumSize(preferredSize); reportPanel.setPreferredSize(preferredSize); } } rePortPanel.add(reportPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); } mainPanel.addTab("Report Generation", rePortPanel); } contentPane.add(mainPanel); mainPanel.setBounds(35, 95, 850, 550); { // compute preferred size Dimension preferredSize = new Dimension(); for (int i = 0; i < contentPane.getComponentCount(); i++) { Rectangle bounds = contentPane.getComponent(i).getBounds(); preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width); preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height); } Insets insets = contentPane.getInsets(); preferredSize.width += insets.right; preferredSize.height += insets.bottom; contentPane.setMinimumSize(preferredSize); contentPane.setPreferredSize(preferredSize); } pack(); setLocationRelativeTo(getOwner()); // JFormDesigner - End of component initialization //GEN-END:initComponents } // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables // Generated using JFormDesigner Evaluation license - David Park private JPanel bannerPanel; private JButton logOutbutton; private JLabel bannerLabel; private JLabel label2; private JLabel label3; private JTabbedPane mainPanel; private JPanel userTapPanel; private JPanel userEntryPanel; private JLabel userEntryfName; private JTextField userEntryfNameText; private JLabel userEntrylname; private JTextField userEntrylNameText; private JLabel userEntryPwd; private JPasswordField passwordField1; private JLabel userEntryPhone; private JTextField userEntryPhoneText; private JLabel userEntryEmai; private JTextField userEntryEmailText; private JLabel userEntryAdress; private JTextField userEntryAdressText; private JButton addUserButton; private JPanel bookTapPane; private JPanel searchBookPanel; private JLabel searchTitle; private JTextField searchTitleField; private JButton searchTitleButton; private JLabel searchAuthor; private JTextField searchAuthorField; private JButton searchAuthorButton; private JPanel bookEntryPanel; private JLabel bookEntryTitle; private JTextField bookEntryTitleText; private JLabel bookEntryAuthoer; private JTextField bookEntryAuthorText; private JLabel bookEntryISBN; private JTextField bookEntryISBNText; private JLabel bookEntryPublic; private JTextField bookEntryPublicText; private JLabel bookEntryGenre; private JComboBox bookEntryGenreCom; private JLabel bookEntrySubject; private JComboBox bookEntrySubjectCom; private JLabel bookEntryPdate; private JTextField bookEntryPdateText; private JLabel bookEntryShopname; private JTextField bookEntryShopnameText; private JLabel bookEntryPrice; private JTextField bookEntryPriceText; private JLabel bookEntryDetail; private JTextField bookEntryDetailText; private JLabel bookEntryStatus; private JComboBox bookEntryStatusCom; private JPanel navigationBookPane; private JButton previousBookButton; private JTextField currentBookIndex; private JLabel bookOflabel; private JTextField maxIndexBook; private JButton nextBookButton; private JButton returnBookButton; private JPanel rePortPanel; private JPanel reportPanel; private JLabel bookLendingLabel; private JLabel fineReportLabel; private JComboBox lendingCombo; private JComboBox findCombo; private JButton generateLendingButton; private JButton generateFineButton; private JLabel bookPurchasedLabel; private JComboBox bookPurchasedCom; private JButton generatePurchaseButton; // JFormDesigner - End of variables declaration //GEN-END:variables }