Example usage for javax.swing Action putValue

List of usage examples for javax.swing Action putValue

Introduction

In this page you can find the example usage for javax.swing Action putValue.

Prototype

public void putValue(String key, Object value);

Source Link

Document

Sets one of this object's properties using the associated key.

Usage

From source file:com.intuit.tank.tools.debugger.ActionProducer.java

/**
 * //w  w w.  ja v  a2  s.co  m
 * @return
 */
public Action getOpenAction() {
    Action ret = actionMap.get(ACTION_OPEN);
    if (ret == null) {
        ret = new AbstractAction(ACTION_OPEN, getIcon("script_go.png", IconSize.SMALL)) {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent event) {
                try {
                    int option = jFileChooser.showOpenDialog(debuggerFrame);
                    if (option != JFileChooser.CANCEL_OPTION) {
                        File selectedFile = jFileChooser.getSelectedFile();
                        try {
                            String scriptXml = FileUtils.readFileToString(selectedFile);
                            setFromString(scriptXml);
                            debuggerFrame.setScriptSource(
                                    new ScriptSource(selectedFile.getAbsolutePath(), SourceType.file));
                        } catch (Exception e) {
                            LOG.error("Error reading file " + selectedFile.getName() + ": " + e);
                            JOptionPane.showMessageDialog(debuggerFrame, e.getMessage(),
                                    "Error unmarshalling xml", JOptionPane.ERROR_MESSAGE);
                        }
                    }
                } catch (HeadlessException e) {
                    showError("Error opening file: " + e);
                }
            }
        };
        ret.putValue(Action.SHORT_DESCRIPTION, "Open Agent xml from filesystem.");
        ret.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('O', menuActionMods));
        ret.putValue(Action.MNEMONIC_KEY, new Integer('O'));
        actionMap.put(ACTION_OPEN, ret);
    }
    return ret;
}

From source file:it.cnr.icar.eric.client.ui.swing.graph.JBGraph.java

/**
 * DOCUMENT ME!/* w w  w  .j  a  v a2  s. co m*/
 *
 * @return DOCUMENT ME!
 */
public JToolBar createToolBar() {
    JButton button = null;
    JToolBar toolbar = new JToolBar();
    toolbar.setFloatable(false);

    //TODO: SwingBoost: Localize this
    TreeNode tempTreeNode = new DefaultMutableTreeNode("loading object types...");
    objectTypeCombo = new it.cnr.icar.eric.client.ui.swing.TreeCombo(new DefaultTreeModel(tempTreeNode));
    toolbar.add(objectTypeCombo);

    // use a SwingWorker to get the real model, since it might not have been initialized yet
    final SwingWorker worker = new SwingWorker(this) {
        public Object doNonUILogic() {
            ConceptsTreeModel objectTypesTreeModel = BusinessQueryPanel.getObjectTypesTreeModel();
            return objectTypesTreeModel;
        }

        public void doUIUpdateLogic() {
            ConceptsTreeModel objectTypesTreeModel = (ConceptsTreeModel) get();
            objectTypeCombo.setModel(objectTypesTreeModel);
        }
    };
    worker.start();

    // Insert
    URL insertUrl = getClass().getClassLoader().getResource("icons/insert.gif");
    ImageIcon insertIcon = new ImageIcon(insertUrl);
    button = toolbar.add(new AbstractAction("", insertIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = 1L;

        public void actionPerformed(ActionEvent e) {
            insert(new Point(10, 10));
        }
    });
    button.setText(""); //an icon-only button
    button.setToolTipText("Insert");

    // Toggle Connect Mode
    URL connectUrl = getClass().getClassLoader().getResource("icons/connecton.gif");
    ImageIcon connectIcon = new ImageIcon(connectUrl);
    button = toolbar.add(new AbstractAction("", connectIcon) {

        /**
        * 
        */
        private static final long serialVersionUID = 657528648199915209L;

        public void actionPerformed(ActionEvent e) {
            setPortsVisible(!isPortsVisible());

            URL connectUrl;

            if (isPortsVisible()) {
                connectUrl = getClass().getClassLoader().getResource("icons/connecton.gif");
            } else {
                connectUrl = getClass().getClassLoader().getResource("icons/connectoff.gif");
            }

            ImageIcon connectIcon = new ImageIcon(connectUrl);
            putValue(SMALL_ICON, connectIcon);
        }
    });
    button.setText(""); //an icon-only button
    button.setToolTipText("Toggle Connect Mode");

    // Undo
    toolbar.addSeparator();

    URL undoUrl = getClass().getClassLoader().getResource("icons/undo.gif");
    ImageIcon undoIcon = new ImageIcon(undoUrl);
    undo = new AbstractAction("", undoIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = -740055667372297781L;

        public void actionPerformed(ActionEvent e) {
            undo();
        }
    };
    undo.setEnabled(false);
    button = toolbar.add(undo);
    button.setText(""); //an icon-only button
    button.setToolTipText("Undo");

    // Redo
    URL redoUrl = getClass().getClassLoader().getResource("icons/redo.gif");
    ImageIcon redoIcon = new ImageIcon(redoUrl);
    redo = new AbstractAction("", redoIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = 5021485220988522968L;

        public void actionPerformed(ActionEvent e) {
            redo();
        }
    };
    redo.setEnabled(false);
    button = toolbar.add(redo);
    button.setText(""); //an icon-only button
    button.setToolTipText("Redo");

    //
    // Edit Block
    //
    toolbar.addSeparator();

    Action action;
    URL url;

    // Copy
    action = TransferHandler.getCopyAction();
    url = getClass().getClassLoader().getResource("icons/copy.gif");
    action.putValue(Action.SMALL_ICON, new ImageIcon(url));

    //Commented out until we can figure out how to assign new id to copied objects
    //button = toolbar.add(copy = new EventRedirector(action));
    button.setText(""); //an icon-only button
    button.setToolTipText("Copy");

    // Paste
    action = TransferHandler.getPasteAction();
    url = getClass().getClassLoader().getResource("icons/paste.gif");
    action.putValue(Action.SMALL_ICON, new ImageIcon(url));

    //Commented out until we can figure out how to assign new id to copied objects
    //button = toolbar.add(paste = new EventRedirector(action));
    button.setText(""); //an icon-only button
    button.setToolTipText("Paste");

    // Cut
    action = TransferHandler.getCutAction();
    url = getClass().getClassLoader().getResource("icons/cut.gif");
    action.putValue(Action.SMALL_ICON, new ImageIcon(url));

    //Commented out until we can figure out how to assign new id to copied objects
    //button = toolbar.add(cut = new EventRedirector(action));
    button.setText(""); //an icon-only button
    button.setToolTipText("Cut");

    // Remove
    URL removeUrl = getClass().getClassLoader().getResource("icons/delete.gif");
    ImageIcon removeIcon = new ImageIcon(removeUrl);
    remove = new AbstractAction("", removeIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = 6889927067487680474L;

        public void actionPerformed(ActionEvent e) {
            if (!isSelectionEmpty()) {
                Object[] cells = getSelectionCells();
                cells = getDescendants(cells);
                getModel().remove(cells);

                //Remove entry from map of cells on the graph
                for (int i = 0; i < cells.length; i++) {
                    Object cell = cells[i];

                    if (cell instanceof JBGraphCell) {
                        RegistryObject ro = ((JBGraphCell) cell).getRegistryObject();
                        registryObjectToCellMap.remove(ro);
                    }
                }
            }
        }
    };
    remove.setEnabled(false);
    button = toolbar.add(remove);
    button.setText(""); //an icon-only button
    button.setToolTipText(resourceBundle.getString("menu.graphPanel.removeFromView"));

    // Zoom Std
    toolbar.addSeparator();

    URL zoomUrl = getClass().getClassLoader().getResource("icons/zoom.gif");
    ImageIcon zoomIcon = new ImageIcon(zoomUrl);
    button = toolbar.add(new AbstractAction("", zoomIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = -4404610379022823602L;

        public void actionPerformed(ActionEvent e) {
            setScale(1.0);
        }
    });
    button.setText(""); //an icon-only button
    button.setToolTipText("Zoom");

    // Zoom In
    URL zoomInUrl = getClass().getClassLoader().getResource("icons/zoomin.gif");
    ImageIcon zoomInIcon = new ImageIcon(zoomInUrl);
    button = toolbar.add(new AbstractAction("", zoomInIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = 6782766891458235321L;

        public void actionPerformed(ActionEvent e) {
            setScale(2 * getScale());
        }
    });
    button.setText(""); //an icon-only button
    button.setToolTipText("Zoom In");

    // Zoom Out
    URL zoomOutUrl = getClass().getClassLoader().getResource("icons/zoomout.gif");
    ImageIcon zoomOutIcon = new ImageIcon(zoomOutUrl);
    button = toolbar.add(new AbstractAction("", zoomOutIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = -5480242207934335070L;

        public void actionPerformed(ActionEvent e) {
            setScale(getScale() / 2);
        }
    });
    button.setText(""); //an icon-only button
    button.setToolTipText("Zoom Out");

    // Group
    /*
    toolbar.addSeparator();
            
    URL groupUrl          =
    getClass().getClassLoader().getResource("icons/group.gif");
    ImageIcon groupIcon   = new ImageIcon(groupUrl);
    group =
    new AbstractAction("", groupIcon) {
            public void actionPerformed(ActionEvent e) {
                group(getSelectionCells());
            }
        };
    group.setEnabled(false);
    //button                = toolbar.add(group);
    button.setText(""); //an icon-only button
    button.setToolTipText("Group");
            
    // Ungroup
    URL ungroupUrl        =
    getClass().getClassLoader().getResource("icons/ungroup.gif");
    ImageIcon ungroupIcon = new ImageIcon(ungroupUrl);
    ungroup =
    new AbstractAction("", ungroupIcon) {
            public void actionPerformed(ActionEvent e) {
                ungroup(getSelectionCells());
            }
        };
    ungroup.setEnabled(false);
    //button                = toolbar.add(ungroup);
    button.setText(""); //an icon-only button
    button.setToolTipText("Ungroup");
     */
    // To Front
    toolbar.addSeparator();

    URL toFrontUrl = getClass().getClassLoader().getResource("icons/tofront.gif");
    ImageIcon toFrontIcon = new ImageIcon(toFrontUrl);
    tofront = new AbstractAction("", toFrontIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = -4901428890590828561L;

        public void actionPerformed(ActionEvent e) {
            if (!isSelectionEmpty()) {
                toFront(getSelectionCells());
            }
        }
    };
    tofront.setEnabled(false);
    button = toolbar.add(tofront);
    button.setText(""); //an icon-only button
    button.setToolTipText("To Front");

    // To Back
    URL toBackUrl = getClass().getClassLoader().getResource("icons/toback.gif");
    ImageIcon toBackIcon = new ImageIcon(toBackUrl);
    toback = new AbstractAction("", toBackIcon) {
        /**
        * 
        */
        private static final long serialVersionUID = -5942025518651424307L;

        public void actionPerformed(ActionEvent e) {
            if (!isSelectionEmpty()) {
                toBack(getSelectionCells());
            }
        }
    };
    toback.setEnabled(false);
    button = toolbar.add(toback);
    button.setText(""); //an icon-only button
    button.setToolTipText("To Back");

    return toolbar;
}

From source file:edu.ku.brc.ui.UIRegistry.java

/**
 * @param action// ww w.  j  a v a 2 s.  c  o m
 * @param name
 * @param icon
 * @param toolTip
 * @param mnemonicKeyCode
 * @param acceleratorKey
 * @return
 */
public Action makeAction(Action action, String name, ImageIcon icon, String toolTip, Integer mnemonicKeyCode,
        KeyStroke acceleratorKey) {
    if (name != null)
        action.putValue(Action.NAME, name);

    if (icon != null)
        action.putValue(Action.SMALL_ICON, icon);

    if (toolTip != null)
        action.putValue(Action.SHORT_DESCRIPTION, toolTip);

    if (mnemonicKeyCode != null)
        action.putValue(Action.MNEMONIC_KEY, mnemonicKeyCode);

    if (acceleratorKey != null)
        action.putValue(Action.ACCELERATOR_KEY, acceleratorKey);

    return action;
}

From source file:com.intuit.tank.tools.debugger.ActionProducer.java

/**
 * /* ww w .java 2  s  .  com*/
 * @return
 */
public Action getSelectTankAction() {
    Action ret = actionMap.get(ACTION_SELECT_TANK);
    if (ret == null) {
        ret = new AbstractAction(ACTION_SELECT_TANK) {
            private static final long serialVersionUID = 1L;
            final JComboBox cb = getComboBox();

            @Override
            public void actionPerformed(ActionEvent event) {
                try {
                    int selected = JOptionPane.showConfirmDialog(debuggerFrame, cb,
                            "Enter the base URL to Tank:", JOptionPane.OK_CANCEL_OPTION,
                            JOptionPane.QUESTION_MESSAGE);
                    if (selected == JOptionPane.OK_OPTION) {
                        String url = (String) cb.getSelectedItem();
                        if (url != null) {
                            int startInd = url.indexOf('(');
                            int endInd = url.indexOf(')');
                            if (startInd != -1 && endInd != -1) {
                                url = url.substring(startInd + 1, endInd);
                            }
                            url = StringUtils.removeEndIgnoreCase(url, "/");
                            if (!url.startsWith("http")) {
                                url = "http://" + url;
                            }
                            try {
                                new ScriptServiceClient(url).ping();
                                setServiceUrl(url);
                            } catch (Exception e) {
                                showError("Cannot connect to Tank at the url " + url
                                        + ". \nExample: http://tank.mysite.com/");
                            }
                        }
                    }
                } catch (HeadlessException e) {
                    showError("Error opening file: " + e);
                }
            }
        };
        ret.putValue(Action.SHORT_DESCRIPTION, "Enter a Tank URL.");
        actionMap.put(ACTION_SELECT_TANK, ret);
    }
    return ret;
}

From source file:com.intuit.tank.tools.debugger.ActionProducer.java

/**
 * //from w  w w .  j a v  a 2 s  .  c  om
 * @return
 */
public Action getOpenProjectAction() {
    Action ret = actionMap.get(ACTION_CHOOSE_PROJECT);
    if (ret == null) {
        ret = new AbstractAction(ACTION_CHOOSE_PROJECT, getIcon("application_lightning.png", IconSize.SMALL)) {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    List<ProjectTO> projects = projectServiceClient.getProjects();
                    Collections.sort(projects, new Comparator<ProjectTO>() {

                        @Override
                        public int compare(ProjectTO o1, ProjectTO o2) {
                            return o2.getCreated().compareTo(o1.getCreated());
                        }
                    });
                    SelectDialog<ProjectTO> selectDialog = new SelectDialog<ProjectTO>(debuggerFrame, projects,
                            "project");
                    selectDialog.setVisible(true);
                    final ProjectTO selected = selectDialog.getSelectedObject();
                    if (selected != null) {
                        debuggerFrame.startWaiting();
                        setFromString(null);
                        // get script in thread
                        new Thread(new Runnable() {
                            public void run() {
                                try {
                                    String scriptXml = projectServiceClient
                                            .downloadTestScriptForProject(selected.getId());
                                    debuggerFrame.setDataFromProject(selected);
                                    setFromString(scriptXml);
                                    debuggerFrame.setCurrentTitle("Selected Project: " + selected.getName());
                                    debuggerFrame.setScriptSource(
                                            new ScriptSource(selected.getId().toString(), SourceType.project));
                                    debuggerFrame.stopWaiting();
                                } catch (Exception e1) {
                                    e1.printStackTrace();
                                    debuggerFrame.stopWaiting();
                                    showError("Error opening projects: " + e1);
                                } finally {
                                    debuggerFrame.stopWaiting();
                                }
                            }
                        }).start();
                    }
                } catch (Exception e1) {
                    showError("Error opening projects: " + e1);
                }
            }

        };
        ret.putValue(Action.SHORT_DESCRIPTION, "Choose Project from Tank.");
        actionMap.put(ACTION_CHOOSE_PROJECT, ret);
    }
    return ret;
}

From source file:com.intuit.tank.tools.debugger.ActionProducer.java

/**
 * /*from w  ww .ja va  2s  .com*/
 * @return
 */
public Action getOpenScriptAction() {
    Action ret = actionMap.get(ACTION_CHOOSE_SCRIPT);
    if (ret == null) {
        ret = new AbstractAction(ACTION_CHOOSE_SCRIPT, getIcon("script_lightning.png", IconSize.SMALL)) {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    ScriptDescriptionContainer scriptDescriptions = scriptServiceClient.getScriptDescriptions();
                    List<ScriptDescription> scripts = scriptDescriptions.getScripts();
                    Collections.sort(scripts, new Comparator<ScriptDescription>() {

                        @Override
                        public int compare(ScriptDescription o1, ScriptDescription o2) {
                            return o2.getCreated().compareTo(o1.getCreated());
                        }
                    });
                    SelectDialog<ScriptDescription> selectDialog = new SelectDialog<ScriptDescription>(
                            debuggerFrame, scripts, "script");
                    selectDialog.setVisible(true);
                    final ScriptDescription scriptSelected = selectDialog.getSelectedObject();
                    if (scriptSelected != null) {
                        debuggerFrame.startWaiting();
                        setFromString(null);
                        // get script in thread
                        new Thread(new Runnable() {
                            public void run() {
                                try {
                                    String scriptXml = scriptServiceClient
                                            .downloadHarnessXml(scriptSelected.getId());
                                    setFromString(scriptXml);
                                    debuggerFrame
                                            .setCurrentTitle("Selected Script: " + scriptSelected.getName());
                                    debuggerFrame.setScriptSource(new ScriptSource(
                                            scriptSelected.getId().toString(), SourceType.script));
                                } catch (Exception e1) {
                                    debuggerFrame.stopWaiting();
                                    showError("Error downloading script: " + e1);
                                } finally {
                                    debuggerFrame.stopWaiting();
                                }
                            }
                        }).start();
                    }
                } catch (Exception e1) {
                    showError("Error downloading script: " + e1);
                }
            }
        };
        ret.putValue(Action.SHORT_DESCRIPTION, "Choose Script from Tank.");
        actionMap.put(ACTION_CHOOSE_SCRIPT, ret);
    }
    return ret;
}

From source file:com.intuit.tank.tools.debugger.ActionProducer.java

/**
 * /*from  ww w.ja  v  a  2  s. c  o m*/
 * @return
 */
public Action getReloadAction() {
    Action ret = actionMap.get(ACTION_RELOAD);
    if (ret == null) {
        ret = new AbstractAction(ACTION_RELOAD, getIcon("refresh.png", IconSize.SMALL)) {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent event) {
                try {
                    final ScriptSource scriptSource = debuggerFrame.getScriptSource();
                    if (scriptSource != null) {
                        debuggerFrame.startWaiting();
                        setFromString(null);
                        // get script in thread
                        new Thread(new Runnable() {
                            public void run() {
                                try {
                                    String scriptXml = null;
                                    if (scriptSource.getSource() == SourceType.file) {
                                        scriptXml = FileUtils.readFileToString(new File(scriptSource.getId()));
                                    } else if (scriptSource.getSource() == SourceType.script) {
                                        scriptXml = scriptServiceClient
                                                .downloadHarnessXml(Integer.parseInt(scriptSource.getId()));
                                    } else if (scriptSource.getSource() == SourceType.project) {
                                        scriptXml = projectServiceClient.downloadTestScriptForProject(
                                                Integer.parseInt(scriptSource.getId()));
                                    }
                                    if (scriptXml != null) {
                                        setFromString(scriptXml);
                                    }
                                } catch (Exception e1) {
                                    e1.printStackTrace();
                                    debuggerFrame.stopWaiting();
                                    showError("Error opening from source: " + e1);
                                } finally {
                                    debuggerFrame.stopWaiting();
                                }
                            }
                        }).start();

                    } else {
                        JOptionPane.showMessageDialog(debuggerFrame,
                                "Scripts can only be reloaded if they have been loaded first.",
                                "Load Script from source", JOptionPane.ERROR_MESSAGE);
                    }
                } catch (HeadlessException e) {
                    showError("Error opening file: " + e);
                }
            }
        };
        ret.putValue(Action.SHORT_DESCRIPTION, "Reload scrpt from source.");
        ret.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('R', menuActionMods));
        ret.putValue(Action.MNEMONIC_KEY, new Integer('R'));
        ret.setEnabled(false);
        actionMap.put(ACTION_RELOAD, ret);
    }
    return ret;
}

From source file:library.Form_Library.java

License:asdf

/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor./*from  w  w w  . j  a  va2  s.  com*/
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {

    jTabbedPane1 = new javax.swing.JTabbedPane();
    jPanel1 = new javax.swing.JPanel();
    jLabel20 = new javax.swing.JLabel();
    jPanel19 = new javax.swing.JPanel();
    jButton10 = new javax.swing.JButton();
    jButton11 = new javax.swing.JButton();
    jButton12 = new javax.swing.JButton();
    jPanel20 = new javax.swing.JPanel();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
    jButton3 = new javax.swing.JButton();
    jPanel2 = new javax.swing.JPanel();
    jTabbedPane2 = new javax.swing.JTabbedPane();
    jPanel7 = new javax.swing.JPanel();
    jPanel11 = new javax.swing.JPanel();
    lbBookID = new javax.swing.JLabel();
    lbSupplierID = new javax.swing.JLabel();
    lbBookName = new javax.swing.JLabel();
    lbPrice = new javax.swing.JLabel();
    lbCategoryID = new javax.swing.JLabel();
    tfBookID = new javax.swing.JTextField();
    tfBookName = new javax.swing.JTextField();
    tfPrice = new javax.swing.JTextField();
    lbColumnNo = new javax.swing.JLabel();
    lbAuthorID = new javax.swing.JLabel();
    lbShelf = new javax.swing.JLabel();
    lbQuantity = new javax.swing.JLabel();
    lbRowNo = new javax.swing.JLabel();
    cbCategoryID = new javax.swing.JComboBox<>();
    tfColumnNo = new javax.swing.JTextField();
    tfQuantity = new javax.swing.JTextField();
    tfShelf = new javax.swing.JTextField();
    tfRowNo = new javax.swing.JTextField();
    tfAuthorID = new javax.swing.JTextField();
    tfSupplierID = new javax.swing.JTextField();
    lbImage = new javax.swing.JLabel();
    btImage = new javax.swing.JButton();
    tfImage = new javax.swing.JTextField();
    btAdd1 = new javax.swing.JButton();
    btEdit1 = new javax.swing.JButton();
    btDelete1 = new javax.swing.JButton();
    btClose = new javax.swing.JButton();
    jScrollPane3 = new javax.swing.JScrollPane();
    tbBookAdmin = new javax.swing.JTable();
    tfSearchBook = new javax.swing.JTextField();
    btSearchBook = new javax.swing.JButton();
    lbSupplierID2 = new javax.swing.JLabel();
    tfPublisherofBook = new javax.swing.JTextField();
    jButton4 = new javax.swing.JButton();
    jButton5 = new javax.swing.JButton();
    btSave = new javax.swing.JButton();
    jButton133 = new javax.swing.JButton();
    jPanel9 = new javax.swing.JPanel();
    jLabel16 = new javax.swing.JLabel();
    tfcategoryid = new javax.swing.JTextField();
    jLabel17 = new javax.swing.JLabel();
    tfcategoryname = new javax.swing.JTextField();
    btadd = new javax.swing.JButton();
    btupdate = new javax.swing.JButton();
    btdelete = new javax.swing.JButton();
    jScrollPane5 = new javax.swing.JScrollPane();
    tbcategory = new javax.swing.JTable();
    btdelete1 = new javax.swing.JButton();
    jPanel8 = new javax.swing.JPanel();
    jPanel12 = new javax.swing.JPanel();
    btAdd2 = new javax.swing.JButton();
    btEdit2 = new javax.swing.JButton();
    btDelete2 = new javax.swing.JButton();
    jScrollPane4 = new javax.swing.JScrollPane();
    tbAuthorAdmin = new javax.swing.JTable();
    lbAuthorID1 = new javax.swing.JLabel();
    tfAuthorID1 = new javax.swing.JTextField();
    lbAuthorName = new javax.swing.JLabel();
    tfAuthorName = new javax.swing.JTextField();
    btClose1 = new javax.swing.JButton();
    jPanel10 = new javax.swing.JPanel();
    jPanel13 = new javax.swing.JPanel();
    btAddPublisher = new javax.swing.JButton();
    btEditPublisher = new javax.swing.JButton();
    btDeletePublisher = new javax.swing.JButton();
    btClose2 = new javax.swing.JButton();
    jScrollPane6 = new javax.swing.JScrollPane();
    tbPublisher = new javax.swing.JTable();
    lbAuthorID2 = new javax.swing.JLabel();
    tfPublisherID = new javax.swing.JTextField();
    lbAuthorName1 = new javax.swing.JLabel();
    tfPublisherName = new javax.swing.JTextField();
    jPanel3 = new javax.swing.JPanel();
    tfName = new javax.swing.JTextField();
    tfID = new javax.swing.JTextField();
    tfIDCardNumber = new javax.swing.JTextField();
    tfEmail = new javax.swing.JTextField();
    tfAddress = new javax.swing.JTextField();
    tfPhone = new javax.swing.JTextField();
    cbSex = new javax.swing.JComboBox<>();
    carBirthday = new com.toedter.calendar.JDateChooser();
    carActivationDate = new com.toedter.calendar.JDateChooser();
    carExpiredDate = new com.toedter.calendar.JDateChooser();
    jLabel6 = new javax.swing.JLabel();
    jLabel7 = new javax.swing.JLabel();
    jLabel8 = new javax.swing.JLabel();
    jLabel9 = new javax.swing.JLabel();
    jLabel10 = new javax.swing.JLabel();
    jLabel11 = new javax.swing.JLabel();
    jLabel12 = new javax.swing.JLabel();
    jLabel13 = new javax.swing.JLabel();
    jLabel14 = new javax.swing.JLabel();
    jLabel15 = new javax.swing.JLabel();
    jScrollPane2 = new javax.swing.JScrollPane();
    tbReader = new javax.swing.JTable();
    btnAdd = new javax.swing.JButton();
    btnEdit = new javax.swing.JButton();
    btnDelete = new javax.swing.JButton();
    btnSearch = new javax.swing.JButton();
    tfSearch = new javax.swing.JTextField();
    btnSearch1 = new javax.swing.JButton();
    jScrollPane11 = new javax.swing.JScrollPane();
    taPrintReader = new javax.swing.JTextArea();
    btPrintReader = new javax.swing.JButton();
    lbImageLink = new javax.swing.JLabel();
    btSaveReader = new javax.swing.JButton();
    tfImageLink = new javax.swing.JTextField();
    btBrowseReader = new javax.swing.JButton();
    jPanel4 = new javax.swing.JPanel();
    jTabbedPane3 = new javax.swing.JTabbedPane();
    jPanel15 = new javax.swing.JPanel();
    tfBorrowID = new javax.swing.JTextField();
    tfBookBMID = new javax.swing.JTextField();
    tfReaderID = new javax.swing.JTextField();
    carBorrowDate = new com.toedter.calendar.JDateChooser();
    jLabel1 = new javax.swing.JLabel();
    carReturnDate = new com.toedter.calendar.JDateChooser();
    jLabel2 = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    jLabel4 = new javax.swing.JLabel();
    jLabel5 = new javax.swing.JLabel();
    jScrollPane1 = new javax.swing.JScrollPane();
    tbBorrowingManagement = new javax.swing.JTable();
    jPanel18 = new javax.swing.JPanel();
    btEdit = new javax.swing.JButton();
    btDelete3 = new javax.swing.JButton();
    btDelete = new javax.swing.JButton();
    btAdd = new javax.swing.JButton();
    jButton9 = new javax.swing.JButton();
    jPanel16 = new javax.swing.JPanel();
    tfSearchReturn = new javax.swing.JTextField();
    btSearchReturn = new javax.swing.JButton();
    jScrollPane8 = new javax.swing.JScrollPane();
    tbReturn = new javax.swing.JTable();
    jLabel18 = new javax.swing.JLabel();
    jLabel19 = new javax.swing.JLabel();
    jButton8 = new javax.swing.JButton();
    jPanel5 = new javax.swing.JPanel();
    jPanel14 = new javax.swing.JPanel();
    lbSupplierID1 = new javax.swing.JLabel();
    lbSupplierName = new javax.swing.JLabel();
    tfSupplierID1 = new javax.swing.JTextField();
    tfSupplierName = new javax.swing.JTextField();
    lbPhone = new javax.swing.JLabel();
    ftfPhoneSupplier = new javax.swing.JFormattedTextField();
    lbAddress = new javax.swing.JLabel();
    tfAddressSuplier = new javax.swing.JTextField();
    jScrollPane7 = new javax.swing.JScrollPane();
    tbSupplierAdmin = new javax.swing.JTable();
    jPanel17 = new javax.swing.JPanel();
    btEditSupplier = new javax.swing.JButton();
    btDeleteSupplier = new javax.swing.JButton();
    btClose3 = new javax.swing.JButton();
    btAddSupplier = new javax.swing.JButton();
    jPanel6 = new javax.swing.JPanel();
    jLabel21 = new javax.swing.JLabel();
    jLabel22 = new javax.swing.JLabel();
    jScrollPane9 = new javax.swing.JScrollPane();
    tbPhieuQuaHan = new javax.swing.JTable();
    jLabel23 = new javax.swing.JLabel();
    lbTongSach = new javax.swing.JLabel();
    lbTongPhieu = new javax.swing.JLabel();
    lbTongKhachMuon = new javax.swing.JLabel();
    lbTongKhach = new javax.swing.JLabel();
    lbTongPhieuQuaHan = new javax.swing.JLabel();
    btPrintStas = new javax.swing.JButton();
    jScrollPane10 = new javax.swing.JScrollPane();
    taBaoCao = new javax.swing.JTextArea();
    jButton6 = new javax.swing.JButton();
    jButton7 = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setLocationByPlatform(true);
    setResizable(false);
    addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            formKeyPressed(evt);
        }
    });

    jPanel1.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            jPanel1KeyPressed(evt);
        }
    });

    jButton10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/vnflag.png"))); // NOI18N
    java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("resources/Bundle"); // NOI18N
    jButton10.setText(bundle.getString("Form_Library.jButton10.text")); // NOI18N
    jButton10.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton10ActionPerformed(evt);
        }
    });

    jButton11.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/US.png"))); // NOI18N
    jButton11.setText(bundle.getString("Form_Library.jButton11.text")); // NOI18N
    jButton11.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton11ActionPerformed(evt);
        }
    });

    jButton12.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/japan-flag-icon.png"))); // NOI18N
    jButton12.setText(bundle.getString("Form_Library.jButton12.text")); // NOI18N
    jButton12.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton12ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel19Layout = new javax.swing.GroupLayout(jPanel19);
    jPanel19.setLayout(jPanel19Layout);
    jPanel19Layout.setHorizontalGroup(jPanel19Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 373, Short.MAX_VALUE)
            .addGroup(jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel19Layout.createSequentialGroup().addContainerGap().addComponent(jButton10)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jButton11)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jButton12)
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))));
    jPanel19Layout.setVerticalGroup(jPanel19Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE)
            .addGroup(jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel19Layout.createSequentialGroup().addContainerGap().addGroup(jPanel19Layout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jButton11, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)
                            .addComponent(jButton12, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)
                            .addComponent(jButton10, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))));

    jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/key.png"))); // NOI18N
    jButton1.setMnemonic('C');
    jButton1.setText(bundle.getString("Form_Library.jButton1.text")); // NOI18N
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/logout.png"))); // NOI18N
    jButton2.setMnemonic('L');
    jButton2.setText(bundle.getString("Form_Library.jButton2.text")); // NOI18N
    jButton2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton2ActionPerformed(evt);
        }
    });

    jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/home.png"))); // NOI18N
    jButton3.setMnemonic('H');
    jButton3.setText(bundle.getString("Form_Library.jButton3.text")); // NOI18N
    jButton3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton3ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel20Layout = new javax.swing.GroupLayout(jPanel20);
    jPanel20.setLayout(jPanel20Layout);
    jPanel20Layout
            .setHorizontalGroup(jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel20Layout.createSequentialGroup().addContainerGap()
                            .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 160,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 159,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 160,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    jPanel20Layout.setVerticalGroup(jPanel20Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel20Layout.createSequentialGroup().addContainerGap()
                    .addGroup(jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)
                            .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addContainerGap()));

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(jPanel1Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout
                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                            .addComponent(jLabel20, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addContainerGap())
                    .addGroup(jPanel1Layout.createSequentialGroup()
                            .addComponent(jPanel20, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 114,
                                    Short.MAX_VALUE)
                            .addComponent(jPanel19, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(93, 93, 93)))));
    jPanel1Layout
            .setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                            jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(jPanel19, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jPanel20, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jLabel20, javax.swing.GroupLayout.PREFERRED_SIZE, 592,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addContainerGap(99, Short.MAX_VALUE)));

    jTabbedPane1.addTab(bundle.getString("Form_Library.jPanel1.TabConstraints.tabTitle"), jPanel1); // NOI18N

    lbBookID.setText(bundle.getString("Form_Library.lbBookID.text")); // NOI18N

    lbSupplierID.setText(bundle.getString("Form_Library.lbSupplierID.text")); // NOI18N

    lbBookName.setText(bundle.getString("Form_Library.lbBookName.text")); // NOI18N

    lbPrice.setText(bundle.getString("Form_Library.lbPrice.text")); // NOI18N

    lbCategoryID.setText(bundle.getString("Form_Library.lbCategoryID.text")); // NOI18N

    tfBookID.setEditable(false);

    tfBookName.setEditable(false);

    tfPrice.setEditable(false);

    lbColumnNo.setText(bundle.getString("Form_Library.lbColumnNo.text")); // NOI18N

    lbAuthorID.setText(bundle.getString("Form_Library.lbAuthorID.text")); // NOI18N

    lbShelf.setText(bundle.getString("Form_Library.lbShelf.text")); // NOI18N

    lbQuantity.setText(bundle.getString("Form_Library.lbQuantity.text")); // NOI18N

    lbRowNo.setText(bundle.getString("Form_Library.lbRowNo.text")); // NOI18N

    cbCategoryID.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "--CategoryID--" }));
    cbCategoryID.setEnabled(false);

    tfColumnNo.setEditable(false);

    tfQuantity.setEditable(false);

    tfShelf.setEditable(false);

    tfRowNo.setEditable(false);

    tfAuthorID.setEditable(false);

    tfSupplierID.setEditable(false);

    lbImage.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED,
            java.awt.Color.white, java.awt.Color.white, java.awt.Color.white, java.awt.Color.white));

    btImage.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Pictures Folder-20.png"))); // NOI18N
    btImage.setText(bundle.getString("Form_Library.btImage.text")); // NOI18N
    btImage.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btImageActionPerformed(evt);
        }
    });

    tfImage.setEditable(false);

    btAdd1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_add.png"))); // NOI18N
    btAdd1.setMnemonic('A');
    btAdd1.setText(bundle.getString("Form_Library.btAdd1.text")); // NOI18N
    btAdd1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btAdd1ActionPerformed(evt);
        }
    });

    btEdit1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    btEdit1.setMnemonic('U');
    btEdit1.setText(bundle.getString("Form_Library.btEdit1.text")); // NOI18N
    btEdit1.setMaximumSize(new java.awt.Dimension(63, 23));
    btEdit1.setMinimumSize(new java.awt.Dimension(63, 23));
    btEdit1.setPreferredSize(new java.awt.Dimension(63, 23));
    btEdit1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btEdit1ActionPerformed(evt);
        }
    });

    btDelete1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_delete.png"))); // NOI18N
    btDelete1.setMnemonic('D');
    btDelete1.setText(bundle.getString("Form_Library.btDelete1.text")); // NOI18N
    btDelete1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btDelete1ActionPerformed(evt);
        }
    });

    btClose.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Redo-16.png"))); // NOI18N
    btClose.setMnemonic('C');
    btClose.setText(bundle.getString("Form_Library.btClose.text")); // NOI18N
    btClose.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btCloseActionPerformed(evt);
        }
    });

    tbBookAdmin
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tbBookAdmin.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_LAST_COLUMN);
    tbBookAdmin.setName(""); // NOI18N
    tbBookAdmin.setAutoCreateRowSorter(true);
    tbBookAdmin.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tbBookAdminMouseClicked(evt);
        }
    });
    jScrollPane3.setViewportView(tbBookAdmin);

    btSearchBook.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_search.png"))); // NOI18N
    btSearchBook.setMnemonic('S');
    btSearchBook.setText(bundle.getString("Form_Library.btSearchBook.text")); // NOI18N
    btSearchBook.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btSearchBookActionPerformed(evt);
        }
    });

    lbSupplierID2.setText(bundle.getString("Form_Library.lbSupplierID2.text")); // NOI18N

    tfPublisherofBook.setEditable(false);

    jButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Export-16 (1).png"))); // NOI18N
    jButton4.setText(bundle.getString("Form_Library.jButton4.text")); // NOI18N
    jButton4.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton4ActionPerformed(evt);
        }
    });

    jButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Import-16 (1).png"))); // NOI18N
    jButton5.setText(bundle.getString("Form_Library.jButton5.text")); // NOI18N
    jButton5.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton5ActionPerformed(evt);
        }
    });

    btSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Save-16.png"))); // NOI18N
    btSave.setText(bundle.getString("Form_Library.btSave.text")); // NOI18N
    btSave.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btSaveActionPerformed(evt);
        }
    });

    jButton133.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    Action buttonActionBook = new AbstractAction("",
            new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))) {

        @Override
        public void actionPerformed(ActionEvent evt) {
            BookList.getList().clear();
            dmBook.getDataVector().clear();
            BookList.load("select * from book");
            for (Book c : BookList.getList()) {
                dmBook.addRow(c.toVector());
            }
        }
    };

    String keyBook = "";

    jButton133.setAction(buttonActionBook);

    buttonActionBook.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_R);

    jButton133.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0),
            keyBook);

    jButton133.getActionMap().put(keyBook, buttonActionBook);
    jButton133.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton133ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
    jPanel11.setLayout(jPanel11Layout);
    jPanel11Layout.setHorizontalGroup(jPanel11Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel11Layout.createSequentialGroup().addGap(20, 20, 20).addGroup(jPanel11Layout
                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel11Layout
                            .createSequentialGroup().addGroup(jPanel11Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addGroup(jPanel11Layout.createSequentialGroup().addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                                    false)
                                            .addComponent(jButton5, javax.swing.GroupLayout.DEFAULT_SIZE, 128,
                                                    Short.MAX_VALUE)
                                            .addComponent(
                                                    btAdd1, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                            .addPreferredGap(
                                                    javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addGroup(jPanel11Layout.createParallelGroup(
                                                    javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                                                            jPanel11Layout.createSequentialGroup().addComponent(
                                                                    jButton4,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 131,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                    .addGap(0, 0, Short.MAX_VALUE))
                                                    .addGroup(jPanel11Layout.createSequentialGroup()
                                                            .addComponent(btEdit1,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 131,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                            .addPreferredGap(
                                                                    javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                            .addComponent(btDelete1,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                            .addPreferredGap(
                                                                    javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                                    29, Short.MAX_VALUE)
                                                            .addComponent(btSave,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 91,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE))))
                                    .addComponent(tfSearchBook))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel11Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(btClose, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(btSearchBook, javax.swing.GroupLayout.DEFAULT_SIZE, 130,
                                            Short.MAX_VALUE)))
                    .addGroup(jPanel11Layout.createSequentialGroup().addGroup(jPanel11Layout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel11Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(tfSupplierID, javax.swing.GroupLayout.PREFERRED_SIZE, 190,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(jPanel11Layout.createSequentialGroup().addComponent(lbSupplierID2)
                                            .addGap(18, 18, 18).addComponent(tfPublisherofBook,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 190,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel11Layout.createSequentialGroup().addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(lbBookName)
                                            .addComponent(lbBookID, javax.swing.GroupLayout.PREFERRED_SIZE, 51,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(lbAuthorID)).addGap(18, 18, 18)
                                            .addGroup(jPanel11Layout
                                                    .createParallelGroup(
                                                            javax.swing.GroupLayout.Alignment.LEADING, false)
                                                    .addComponent(tfAuthorID,
                                                            javax.swing.GroupLayout.DEFAULT_SIZE, 191,
                                                            Short.MAX_VALUE)
                                                    .addComponent(tfBookID).addComponent(tfBookName))))
                            .addComponent(lbSupplierID, javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                    jPanel11Layout.createSequentialGroup().addComponent(lbCategoryID).addGap(18,
                                            18, 18).addComponent(cbCategoryID,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 188,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel11Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel11Layout
                                            .createSequentialGroup().addGap(4, 4, 4)
                                            .addGroup(jPanel11Layout
                                                    .createParallelGroup(
                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                    .addComponent(lbRowNo,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 76,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                                    .addGroup(jPanel11Layout.createSequentialGroup()
                                                            .addGroup(jPanel11Layout.createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                    .addComponent(lbQuantity)
                                                                    .addComponent(
                                                                            lbPrice)
                                                                    .addComponent(lbShelf))
                                                            .addGap(28, 28, 28)
                                                            .addGroup(jPanel11Layout.createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    false).addComponent(tfQuantity)
                                                                    .addComponent(tfShelf).addComponent(tfPrice,
                                                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                            190,
                                                                            javax.swing.GroupLayout.PREFERRED_SIZE)))))
                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                            jPanel11Layout.createSequentialGroup().addGroup(jPanel11Layout
                                                    .createParallelGroup(
                                                            javax.swing.GroupLayout.Alignment.LEADING, false)
                                                    .addComponent(btImage, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                            Short.MAX_VALUE)
                                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                                            jPanel11Layout.createSequentialGroup()
                                                                    .addGap(4, 4, 4).addComponent(lbColumnNo,
                                                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                            87,
                                                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                                                    .addComponent(jButton133,
                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                            Short.MAX_VALUE))
                                                    .addGap(47, 47, 47)
                                                    .addGroup(jPanel11Layout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                            .addComponent(tfColumnNo,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 130,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(tfImage,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 130,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(tfRowNo,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 130,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE))))))
                    .addGap(111, 111, 111)
                    .addComponent(lbImage, javax.swing.GroupLayout.PREFERRED_SIZE, 200,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(48, 48, 48))
            .addGroup(jPanel11Layout.createSequentialGroup()
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 1066, Short.MAX_VALUE)
                    .addContainerGap()));
    jPanel11Layout.setVerticalGroup(jPanel11Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel11Layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel11Layout.createSequentialGroup()
                                    .addComponent(lbImage, javax.swing.GroupLayout.PREFERRED_SIZE, 300,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGap(33, 33, 33))
                            .addGroup(jPanel11Layout.createSequentialGroup()
                                    .addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(tfBookID)
                                            .addComponent(lbBookID, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(lbPrice).addComponent(tfPrice))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(tfBookName)
                                            .addComponent(lbBookName, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(lbQuantity).addComponent(tfQuantity))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(lbAuthorID, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(tfAuthorID)
                                            .addComponent(lbShelf, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(tfShelf))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(lbSupplierID2, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(tfPublisherofBook)
                                            .addComponent(lbRowNo, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(tfRowNo, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGap(7, 7, 7)
                                    .addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(lbSupplierID, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(tfSupplierID).addComponent(lbColumnNo)
                                            .addComponent(tfColumnNo))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(lbCategoryID)
                                            .addComponent(cbCategoryID, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(btImage).addComponent(tfImage,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 28,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jButton4, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addGroup(jPanel11Layout.createSequentialGroup()
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                    .addComponent(jButton133)))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(jPanel11Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel11Layout.createSequentialGroup()
                                                    .addGroup(jPanel11Layout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.TRAILING,
                                                                    false)
                                                            .addComponent(btAdd1,
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE, 26,
                                                                    Short.MAX_VALUE)
                                                            .addComponent(btEdit1,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE)
                                                            .addGroup(jPanel11Layout.createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.BASELINE)
                                                                    .addComponent(btDelete1,
                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                            Short.MAX_VALUE)
                                                                    .addComponent(btSave,
                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                            Short.MAX_VALUE)))
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                    .addComponent(tfSearchBook,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addGroup(jPanel11Layout.createSequentialGroup().addGap(1, 1, 1)
                                                    .addComponent(btClose,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 25,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                    .addComponent(btSearchBook)))
                                    .addGap(79, 79, 79)))
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 251,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(116, 116, 116)));

    javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
    jPanel7.setLayout(jPanel7Layout);
    jPanel7Layout.setHorizontalGroup(jPanel7Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup().addContainerGap().addComponent(jPanel11,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addContainerGap()));
    jPanel7Layout.setVerticalGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup().addContainerGap().addComponent(jPanel11,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addContainerGap()));

    jTabbedPane2.addTab(bundle.getString("Form_Library.jPanel7.TabConstraints.tabTitle"), jPanel7); // NOI18N

    jLabel16.setText(bundle.getString("Form_Library.jLabel16.text")); // NOI18N

    tfcategoryid.setEditable(false);

    jLabel17.setText(bundle.getString("Form_Library.jLabel17.text")); // NOI18N

    btadd.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_add.png"))); // NOI18N
    btadd.setMnemonic('A');
    btadd.setText(bundle.getString("Form_Library.btadd.text")); // NOI18N
    btadd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btaddActionPerformed(evt);
        }
    });

    btupdate.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    btupdate.setMnemonic('U');
    btupdate.setText(bundle.getString("Form_Library.btupdate.text")); // NOI18N
    btupdate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btupdateActionPerformed(evt);
        }
    });

    btdelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_delete.png"))); // NOI18N
    btdelete.setMnemonic('D');
    btdelete.setText(bundle.getString("Form_Library.btdelete.text")); // NOI18N
    btdelete.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btdeleteActionPerformed(evt);
        }
    });

    tbcategory.setModel(new javax.swing.table.DefaultTableModel(
            new Object[][] { { null, null }, { null, null }, { null, null }, { null, null } },
            new String[] { "Category ID", "Category Name" }));
    tbcategory.setAutoCreateRowSorter(true);
    tbcategory.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tbcategoryMouseClicked(evt);
        }
    });
    jScrollPane5.setViewportView(tbcategory);

    btdelete1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Redo-16.png"))); // NOI18N
    btdelete1.setMnemonic('C');
    btdelete1.setText(bundle.getString("Form_Library.btdelete1.text")); // NOI18N
    btdelete1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btdelete1ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
    jPanel9.setLayout(jPanel9Layout);
    jPanel9Layout.setHorizontalGroup(jPanel9Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup().addGap(41, 41, 41).addGroup(jPanel9Layout
                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel9Layout.createSequentialGroup()
                            .addComponent(btadd, javax.swing.GroupLayout.PREFERRED_SIZE, 130,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(btupdate, javax.swing.GroupLayout.PREFERRED_SIZE, 127,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(18, 18, 18).addComponent(btdelete, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    126, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel9Layout.createSequentialGroup().addComponent(jLabel16).addGap(18, 18, 18)
                            .addComponent(tfcategoryid, javax.swing.GroupLayout.PREFERRED_SIZE, 190,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 143, Short.MAX_VALUE)
                    .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btdelete1, javax.swing.GroupLayout.Alignment.TRAILING,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 126,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                    jPanel9Layout.createSequentialGroup().addComponent(jLabel17)
                                            .addGap(18, 18, 18).addComponent(tfcategoryname,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 363,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGap(45, 45, 45))
            .addGroup(jPanel9Layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane5)
                    .addContainerGap()));
    jPanel9Layout.setVerticalGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup().addGap(31, 31, 31).addGroup(jPanel9Layout
                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel16)
                    .addComponent(tfcategoryid, javax.swing.GroupLayout.PREFERRED_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel17).addComponent(tfcategoryname, javax.swing.GroupLayout.PREFERRED_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(25, 25, 25)
                    .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btadd, javax.swing.GroupLayout.PREFERRED_SIZE, 25,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(btupdate, javax.swing.GroupLayout.PREFERRED_SIZE, 25,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(btdelete, javax.swing.GroupLayout.PREFERRED_SIZE, 25,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(btdelete1))
                    .addGap(18, 18, 18)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 614, Short.MAX_VALUE)));

    jTabbedPane2.addTab(bundle.getString("Form_Library.jPanel9.TabConstraints.tabTitle"), jPanel9); // NOI18N

    btAdd2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_add.png"))); // NOI18N
    btAdd2.setMnemonic('A');
    btAdd2.setText(bundle.getString("Form_Library.btAdd2.text")); // NOI18N
    btAdd2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btAdd2ActionPerformed(evt);
        }
    });

    btEdit2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    btEdit2.setMnemonic('U');
    btEdit2.setText(bundle.getString("Form_Library.btEdit2.text")); // NOI18N
    btEdit2.setMaximumSize(new java.awt.Dimension(63, 23));
    btEdit2.setMinimumSize(new java.awt.Dimension(63, 23));
    btEdit2.setPreferredSize(new java.awt.Dimension(63, 23));
    btEdit2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btEdit2ActionPerformed(evt);
        }
    });

    btDelete2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_delete.png"))); // NOI18N
    btDelete2.setMnemonic('D');
    btDelete2.setText(bundle.getString("Form_Library.btDelete2.text")); // NOI18N
    btDelete2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btDelete2ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
    jPanel12.setLayout(jPanel12Layout);
    jPanel12Layout
            .setHorizontalGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel12Layout.createSequentialGroup().addGap(31, 31, 31)
                            .addComponent(btAdd2, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(btEdit2, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(btDelete2, javax.swing.GroupLayout.PREFERRED_SIZE, 126,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    jPanel12Layout.setVerticalGroup(jPanel12Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btAdd2, javax.swing.GroupLayout.DEFAULT_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btEdit2, javax.swing.GroupLayout.DEFAULT_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btDelete2)));

    tbAuthorAdmin
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tbAuthorAdmin.setColumnSelectionAllowed(true);
    tbAuthorAdmin.setName(""); // NOI18N
    tbAuthorAdmin.setAutoCreateRowSorter(true);
    tbAuthorAdmin.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tbAuthorAdminMouseClicked(evt);
        }
    });
    jScrollPane4.setViewportView(tbAuthorAdmin);

    lbAuthorID1.setText(bundle.getString("Form_Library.lbAuthorID1.text")); // NOI18N

    tfAuthorID1.setEditable(false);

    lbAuthorName.setText(bundle.getString("Form_Library.lbAuthorName.text")); // NOI18N

    btClose1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Redo-16.png"))); // NOI18N
    btClose1.setMnemonic('C');
    btClose1.setText(bundle.getString("Form_Library.btClose1.text")); // NOI18N
    btClose1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btClose1ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
    jPanel8.setLayout(jPanel8Layout);
    jPanel8Layout
            .setHorizontalGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel8Layout.createSequentialGroup().addGap(40, 40, 40)
                            .addComponent(lbAuthorID1, javax.swing.GroupLayout.PREFERRED_SIZE, 69,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(tfAuthorID1, javax.swing.GroupLayout.PREFERRED_SIZE, 187,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(lbAuthorName).addGap(18, 18, 18)
                            .addComponent(tfAuthorName, javax.swing.GroupLayout.PREFERRED_SIZE, 324,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(57, 57, 57))
                    .addGroup(jPanel8Layout.createSequentialGroup().addContainerGap()
                            .addGroup(jPanel8Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel8Layout.createSequentialGroup().addComponent(jScrollPane4)
                                            .addContainerGap())
                                    .addGroup(jPanel8Layout.createSequentialGroup()
                                            .addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addGap(39, 39, 39)
                                            .addComponent(btClose1, javax.swing.GroupLayout.PREFERRED_SIZE, 123,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addContainerGap(491, Short.MAX_VALUE)))));
    jPanel8Layout.setVerticalGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup().addGap(35, 35, 35)
                    .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lbAuthorID1, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(tfAuthorID1)
                            .addComponent(lbAuthorName, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(tfAuthorName))
                    .addGap(18, 18, 18)
                    .addGroup(
                            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(btClose1, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGap(18, 18, 18).addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 515,
                            javax.swing.GroupLayout.PREFERRED_SIZE)));

    jTabbedPane2.addTab(bundle.getString("Form_Library.jPanel8.TabConstraints.tabTitle"), jPanel8); // NOI18N

    btAddPublisher.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_add.png"))); // NOI18N
    btAddPublisher.setMnemonic('A');
    btAddPublisher.setText(bundle.getString("Form_Library.btAddPublisher.text")); // NOI18N
    btAddPublisher.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btAddPublisherActionPerformed(evt);
        }
    });

    btEditPublisher.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    btEditPublisher.setMnemonic('U');
    btEditPublisher.setText(bundle.getString("Form_Library.btEditPublisher.text")); // NOI18N
    btEditPublisher.setMaximumSize(new java.awt.Dimension(63, 23));
    btEditPublisher.setMinimumSize(new java.awt.Dimension(63, 23));
    btEditPublisher.setPreferredSize(new java.awt.Dimension(63, 23));
    btEditPublisher.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btEditPublisherActionPerformed(evt);
        }
    });

    btDeletePublisher.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_delete.png"))); // NOI18N
    btDeletePublisher.setMnemonic('D');
    btDeletePublisher.setText(bundle.getString("Form_Library.btDeletePublisher.text")); // NOI18N
    btDeletePublisher.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btDeletePublisherActionPerformed(evt);
        }
    });

    btClose2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Redo-16.png"))); // NOI18N
    btClose2.setMnemonic('C');
    btClose2.setText(bundle.getString("Form_Library.btClose2.text")); // NOI18N
    btClose2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btClose2ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
    jPanel13.setLayout(jPanel13Layout);
    jPanel13Layout.setHorizontalGroup(jPanel13Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel13Layout.createSequentialGroup().addGap(29, 29, 29)
                    .addComponent(btAddPublisher, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(18, 18, 18)
                    .addComponent(btEditPublisher, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(18, 18, 18)
                    .addComponent(btDeletePublisher, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(460, 460, 460).addComponent(btClose2, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(51, Short.MAX_VALUE)));
    jPanel13Layout
            .setVerticalGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(btAddPublisher, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btEditPublisher, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btDeletePublisher, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btClose2, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    jScrollPane6.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            jScrollPane6MouseClicked(evt);
        }
    });

    tbPublisher
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tbPublisher.setColumnSelectionAllowed(true);
    tbPublisher.setAutoCreateRowSorter(true);
    tbPublisher.setName(""); // NOI18N
    tbPublisher.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tbPublisherMouseClicked(evt);
        }
    });
    jScrollPane6.setViewportView(tbPublisher);
    tbPublisher.getColumnModel().getSelectionModel()
            .setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION);

    lbAuthorID2.setText(bundle.getString("Form_Library.lbAuthorID2.text")); // NOI18N

    tfPublisherID.setEditable(false);

    lbAuthorName1.setText(bundle.getString("Form_Library.lbAuthorName1.text")); // NOI18N

    javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
    jPanel10.setLayout(jPanel10Layout);
    jPanel10Layout.setHorizontalGroup(jPanel10Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup().addGroup(jPanel10Layout
                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel10Layout.createSequentialGroup().addContainerGap().addGroup(jPanel10Layout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jScrollPane6, javax.swing.GroupLayout.Alignment.TRAILING)))
                    .addGroup(jPanel10Layout.createSequentialGroup().addGap(39, 39, 39)
                            .addComponent(lbAuthorID2, javax.swing.GroupLayout.PREFERRED_SIZE, 69,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(18, 18, 18)
                            .addComponent(tfPublisherID, javax.swing.GroupLayout.PREFERRED_SIZE, 180,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(lbAuthorName1).addGap(29, 29, 29).addComponent(tfPublisherName,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 339,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addContainerGap()));
    jPanel10Layout.setVerticalGroup(jPanel10Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup().addGap(38, 38, 38)
                    .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lbAuthorID2, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(tfPublisherID)
                            .addComponent(lbAuthorName1, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(tfPublisherName))
                    .addGap(18, 18, 18)
                    .addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(18, 18, 18).addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 515,
                            javax.swing.GroupLayout.PREFERRED_SIZE)));

    jTabbedPane2.addTab(bundle.getString("Form_Library.jPanel10.TabConstraints.tabTitle"), jPanel10); // NOI18N

    javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
    jPanel2.setLayout(jPanel2Layout);
    jPanel2Layout
            .setHorizontalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTabbedPane2, javax.swing.GroupLayout.Alignment.TRAILING));
    jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jTabbedPane2));

    jTabbedPane1.addTab(bundle.getString("Form_Library.jPanel2.TabConstraints.tabTitle"), jPanel2); // NOI18N

    jPanel3.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            jPanel3KeyPressed(evt);
        }
    });

    tfName.setEditable(false);

    tfID.setEditable(false);

    tfIDCardNumber.setEditable(false);

    tfEmail.setEditable(false);

    tfAddress.setEditable(false);

    tfPhone.setEditable(false);

    cbSex.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Male", "Female" }));
    cbSex.setEnabled(false);
    cbSex.setMaximumSize(new java.awt.Dimension(450, 450));
    cbSex.setMinimumSize(new java.awt.Dimension(450, 450));
    cbSex.setName(""); // NOI18N

    carBirthday.setDateFormatString(bundle.getString("Form_Library.carBirthday.dateFormatString")); // NOI18N
    carBirthday.setEnabled(false);

    carActivationDate.setDateFormatString(bundle.getString("Form_Library.carActivationDate.dateFormatString")); // NOI18N
    carActivationDate.setEnabled(false);

    carExpiredDate.setDateFormatString(bundle.getString("Form_Library.carExpiredDate.dateFormatString")); // NOI18N
    carExpiredDate.setEnabled(false);

    jLabel6.setText(bundle.getString("Form_Library.jLabel6.text")); // NOI18N

    jLabel7.setText(bundle.getString("Form_Library.jLabel7.text")); // NOI18N

    jLabel8.setText(bundle.getString("Form_Library.jLabel8.text")); // NOI18N

    jLabel9.setText(bundle.getString("Form_Library.jLabel9.text")); // NOI18N

    jLabel10.setText(bundle.getString("Form_Library.jLabel10.text")); // NOI18N

    jLabel11.setText(bundle.getString("Form_Library.jLabel11.text")); // NOI18N

    jLabel12.setText(bundle.getString("Form_Library.jLabel12.text")); // NOI18N

    jLabel13.setText(bundle.getString("Form_Library.jLabel13.text")); // NOI18N

    jLabel14.setText(bundle.getString("Form_Library.jLabel14.text")); // NOI18N

    jLabel15.setText(bundle.getString("Form_Library.jLabel15.text")); // NOI18N

    tbReader.setModel(new javax.swing.table.DefaultTableModel(
            new Object[][] { { null, null, null, null, null, null, null, null, null, null },
                    { null, null, null, null, null, null, null, null, null, null },
                    { null, null, null, null, null, null, null, null, null, null },
                    { null, null, null, null, null, null, null, null, null, null } },
            new String[] { "ID", "Name", "ID Card Number", "Sex", "Birthday", "Address", "Phone", "Email",
                    "Activation Date", "Expired Date" }) {
        Class[] types = new Class[] { java.lang.String.class, java.lang.String.class, java.lang.String.class,
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class,
                java.lang.String.class, java.lang.String.class, java.lang.String.class };

        public Class getColumnClass(int columnIndex) {
            return types[columnIndex];
        }
    });
    tbReader.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_LAST_COLUMN);
    tbReader.setAutoCreateRowSorter(true);
    tbReader.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tbReaderMouseClicked(evt);
        }
    });
    jScrollPane2.setViewportView(tbReader);

    btnAdd.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_add.png"))); // NOI18N
    btnAdd.setMnemonic('A');
    btnAdd.setText(bundle.getString("Form_Library.btnAdd.text")); // NOI18N
    btnAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnAddActionPerformed(evt);
        }
    });

    btnEdit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    btnEdit.setMnemonic('U');
    btnEdit.setText(bundle.getString("Form_Library.btnEdit.text")); // NOI18N
    btnEdit.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnEditActionPerformed(evt);
        }
    });

    btnDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_delete.png"))); // NOI18N
    btnDelete.setMnemonic('D');
    btnDelete.setText(bundle.getString("Form_Library.btnDelete.text")); // NOI18N
    btnDelete.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnDeleteActionPerformed(evt);
        }
    });

    btnSearch.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_search.png"))); // NOI18N
    btnSearch.setMnemonic('S');
    btnSearch.setText(bundle.getString("Form_Library.btnSearch.text")); // NOI18N
    btnSearch.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnSearchActionPerformed(evt);
        }
    });

    btnSearch1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Redo-16.png"))); // NOI18N
    btnSearch1.setMnemonic('C');
    btnSearch1.setText(bundle.getString("Form_Library.btnSearch1.text")); // NOI18N
    btnSearch1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnSearch1ActionPerformed(evt);
        }
    });

    taPrintReader.setColumns(20);
    taPrintReader.setRows(5);
    jScrollPane11.setViewportView(taPrintReader);

    btPrintReader.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Print-16.png"))); // NOI18N
    btPrintReader.setText(bundle.getString("Form_Library.btPrintReader.text")); // NOI18N
    btPrintReader.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btPrintReaderActionPerformed(evt);
        }
    });

    lbImageLink.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

    btSaveReader.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Save-16.png"))); // NOI18N
    btSaveReader.setText(bundle.getString("Form_Library.btSaveReader.text")); // NOI18N
    btSaveReader.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btSaveReaderActionPerformed(evt);
        }
    });

    btBrowseReader.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Pictures Folder-20.png"))); // NOI18N
    btBrowseReader.setText(bundle.getString("Form_Library.btBrowseReader.text")); // NOI18N
    btBrowseReader.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btBrowseReaderActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
    jPanel3.setLayout(jPanel3Layout);
    jPanel3Layout
            .setHorizontalGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup().addGap(323, 323, 323)
                            .addComponent(btPrintReader, javax.swing.GroupLayout.PREFERRED_SIZE, 128,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(btnSearch1, javax.swing.GroupLayout.PREFERRED_SIZE, 128,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(jPanel3Layout.createSequentialGroup().addGroup(jPanel3Layout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane2)
                            .addGroup(jPanel3Layout.createSequentialGroup().addContainerGap()
                                    .addGroup(jPanel3Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                    .addGroup(jPanel3Layout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                                    .addGroup(jPanel3Layout.createParallelGroup(
                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addGroup(jPanel3Layout
                                                                                    .createSequentialGroup()
                                                                                    .addGap(3, 3, 3)
                                                                                    .addComponent(jLabel6,
                                                                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                            27,
                                                                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                                                                            .addGroup(jPanel3Layout
                                                                                    .createParallelGroup(
                                                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                                                            false)
                                                                                    .addComponent(
                                                                                            jLabel10,
                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                            Short.MAX_VALUE)
                                                                                    .addComponent(jLabel7,
                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                            Short.MAX_VALUE))
                                                                            .addComponent(jLabel8).addComponent(
                                                                                    jLabel9))
                                                                    .addGap(49, 49, 49)
                                                                    .addGroup(jPanel3Layout.createParallelGroup(
                                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                                            false).addComponent(tfIDCardNumber)
                                                                            .addComponent(
                                                                                    tfName)
                                                                            .addComponent(carBirthday,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    Short.MAX_VALUE)
                                                                            .addComponent(tfID,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                    225,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                            .addComponent(cbSex,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                    145,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)))
                                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                                    .addGap(19, 19, 19).addGroup(jPanel3Layout
                                                                            .createParallelGroup(
                                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                                    false)
                                                                            .addComponent(btnAdd,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    Short.MAX_VALUE)
                                                                            .addComponent(btnDelete,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    166, Short.MAX_VALUE))
                                                                    .addGap(18, 18, 18).addGroup(jPanel3Layout
                                                                            .createParallelGroup(
                                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                                    false)
                                                                            .addComponent(btSaveReader,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    Short.MAX_VALUE)
                                                                            .addComponent(
                                                                                    btnEdit,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    167, Short.MAX_VALUE))))
                                                    .addGap(0, 143, Short.MAX_VALUE)
                                                    .addGroup(jPanel3Layout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    false)
                                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                                    .addComponent(jLabel15,
                                                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                            87,
                                                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                    .addGap(18, 18, 18).addComponent(
                                                                            carActivationDate,
                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                            Short.MAX_VALUE))
                                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                                    .addGroup(jPanel3Layout.createParallelGroup(
                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(jLabel14,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                    87,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                            .addComponent(jLabel13)
                                                                            .addComponent(
                                                                                    jLabel12)
                                                                            .addComponent(jLabel11))
                                                                    .addGroup(jPanel3Layout.createParallelGroup(
                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addGroup(jPanel3Layout
                                                                                    .createSequentialGroup()
                                                                                    .addGap(18, 18, 18)
                                                                                    .addComponent(
                                                                                            carExpiredDate,
                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                            Short.MAX_VALUE))
                                                                            .addGroup(
                                                                                    javax.swing.GroupLayout.Alignment.TRAILING,
                                                                                    jPanel3Layout
                                                                                            .createSequentialGroup()
                                                                                            .addPreferredGap(
                                                                                                    javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                                                                    18,
                                                                                                    Short.MAX_VALUE)
                                                                                            .addComponent(
                                                                                                    tfEmail,
                                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                    219,
                                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                                                            .addGroup(jPanel3Layout
                                                                                    .createSequentialGroup()
                                                                                    .addGap(18, 18, 18)
                                                                                    .addGroup(jPanel3Layout
                                                                                            .createParallelGroup(
                                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                                            .addComponent(
                                                                                                    tfPhone,
                                                                                                    javax.swing.GroupLayout.Alignment.TRAILING)
                                                                                            .addComponent(
                                                                                                    tfAddress)))))
                                                            .addGroup(jPanel3Layout.createSequentialGroup()
                                                                    .addGroup(jPanel3Layout.createParallelGroup(
                                                                            javax.swing.GroupLayout.Alignment.TRAILING,
                                                                            false)
                                                                            .addComponent(tfImageLink,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    175, Short.MAX_VALUE)
                                                                            .addComponent(tfSearch))
                                                                    .addPreferredGap(
                                                                            javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                                    .addGroup(jPanel3Layout.createParallelGroup(
                                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                                            false)
                                                                            .addComponent(btBrowseReader,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    139, Short.MAX_VALUE)
                                                                            .addComponent(btnSearch,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    Short.MAX_VALUE))))
                                                    .addGap(39, 39, 39)
                                                    .addComponent(lbImageLink,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 176,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                                    .addGap(29, 29, 29))
                                            .addComponent(jScrollPane11))))
                            .addContainerGap()));
    jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel3Layout.createSequentialGroup().addGap(15, 15, 15)
                                    .addGroup(jPanel3Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(tfID, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jLabel6).addComponent(jLabel11)
                                            .addComponent(tfAddress, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(jPanel3Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(tfName, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jLabel12)
                                            .addComponent(tfPhone, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jLabel7))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(jPanel3Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(tfEmail, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jLabel13)
                                            .addComponent(tfIDCardNumber,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jLabel8))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addGroup(jPanel3Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(carActivationDate,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGroup(jPanel3Layout
                                                    .createParallelGroup(
                                                            javax.swing.GroupLayout.Alignment.BASELINE)
                                                    .addComponent(jLabel15).addComponent(jLabel9)
                                                    .addComponent(cbSex, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addGroup(jPanel3Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(jLabel14)
                                            .addComponent(carExpiredDate,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(carBirthday,
                                                    javax.swing.GroupLayout.Alignment.TRAILING,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jLabel10))
                                    .addGap(18, 18, 18)
                                    .addGroup(jPanel3Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(btnEdit).addComponent(btnAdd)
                                            .addComponent(tfSearch, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(btnSearch))
                                    .addGroup(jPanel3Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel3Layout.createSequentialGroup().addGap(15, 15, 15)
                                                    .addGroup(jPanel3Layout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.BASELINE)
                                                            .addComponent(tfImageLink,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(btBrowseReader,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 26,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)))
                                            .addGroup(jPanel3Layout.createSequentialGroup().addPreferredGap(
                                                    javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                    .addGroup(jPanel3Layout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.BASELINE)
                                                            .addComponent(btSaveReader)
                                                            .addComponent(btnDelete))))
                                    .addGap(37, 37, 37))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                    jPanel3Layout.createSequentialGroup().addContainerGap()
                                            .addComponent(lbImageLink, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    248, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGap(18, 18, 18)))
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 119,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(jScrollPane11, javax.swing.GroupLayout.PREFERRED_SIZE, 151,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(btPrintReader).addComponent(btnSearch1))
                    .addContainerGap(167, Short.MAX_VALUE)));

    jTabbedPane1.addTab(bundle.getString("Form_Library.jPanel3.TabConstraints.tabTitle"), jPanel3); // NOI18N

    tfBorrowID.setEditable(false);
    tfBorrowID.setText(bundle.getString("Form_Library.tfBorrowID.text")); // NOI18N

    carBorrowDate.setDateFormatString(bundle.getString("Form_Library.carBorrowDate.dateFormatString")); // NOI18N

    jLabel1.setText(bundle.getString("Form_Library.jLabel1.text")); // NOI18N

    carReturnDate.setDateFormatString(bundle.getString("Form_Library.carReturnDate.dateFormatString")); // NOI18N

    jLabel2.setText(bundle.getString("Form_Library.jLabel2.text")); // NOI18N

    jLabel3.setText(bundle.getString("Form_Library.jLabel3.text")); // NOI18N

    jLabel4.setText(bundle.getString("Form_Library.jLabel4.text")); // NOI18N

    jLabel5.setText(bundle.getString("Form_Library.jLabel5.text")); // NOI18N

    tbBorrowingManagement.setModel(new javax.swing.table.DefaultTableModel(
            new Object[][] { { null, null, null, null, null }, { null, null, null, null, null },
                    { null, null, null, null, null }, { null, null, null, null, null } },
            new String[] { "Borrow ID", "Reader ID", "Book ID", "Borrow Date", "Return Date" }) {
        Class[] types = new Class[] { java.lang.Integer.class, java.lang.String.class, java.lang.String.class,
                java.lang.String.class, java.lang.String.class };

        public Class getColumnClass(int columnIndex) {
            return types[columnIndex];
        }
    });
    tbBorrowingManagement.setAutoCreateRowSorter(true);
    tbBorrowingManagement.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tbBorrowingManagementMouseClicked(evt);
        }
    });
    jScrollPane1.setViewportView(tbBorrowingManagement);

    btEdit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    btEdit.setMnemonic('U');
    btEdit.setText(bundle.getString("Form_Library.btEdit.text")); // NOI18N
    btEdit.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btEditActionPerformed(evt);
        }
    });

    btDelete3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Redo-16.png"))); // NOI18N
    btDelete3.setMnemonic('C');
    btDelete3.setText(bundle.getString("Form_Library.btDelete3.text")); // NOI18N
    btDelete3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btDelete3ActionPerformed(evt);
        }
    });

    btDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_delete.png"))); // NOI18N
    btDelete.setMnemonic('D');
    btDelete.setText(bundle.getString("Form_Library.btDelete.text")); // NOI18N
    btDelete.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btDeleteActionPerformed(evt);
        }
    });

    btAdd.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_add.png"))); // NOI18N
    btAdd.setMnemonic('A');
    btAdd.setText(bundle.getString("Form_Library.btAdd.text")); // NOI18N
    btAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btAddActionPerformed(evt);
        }
    });

    jButton9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    Action buttonActionBor = new AbstractAction("",
            new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))) {

        @Override
        public void actionPerformed(ActionEvent evt) {
            BorrowingList.getList().clear();
            dmBorrowing.getDataVector().clear();
            BorrowingList.load("select * from borrowingmanagement");
            for (BorrowingManagement c : BorrowingList.getList()) {
                dmBorrowing.addRow(c.toVector());
            }
        }
    };

    String keyBor = "";

    jButton9.setAction(buttonActionBor);

    buttonActionBor.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_R);

    jButton9.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0),
            keyBor);

    jButton9.getActionMap().put(keyBor, buttonActionBor);
    jButton9.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton9ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel18Layout = new javax.swing.GroupLayout(jPanel18);
    jPanel18.setLayout(jPanel18Layout);
    jPanel18Layout
            .setHorizontalGroup(
                    jPanel18Layout
                            .createParallelGroup(
                                    javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                    jPanel18Layout.createSequentialGroup().addGap(23, 23, 23)
                                            .addComponent(btAdd, javax.swing.GroupLayout.PREFERRED_SIZE, 124,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGap(18, 18, 18)
                                            .addComponent(btEdit, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGap(18, 18, 18)
                                            .addComponent(btDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGap(18, 18, 18).addComponent(jButton9)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                    423, Short.MAX_VALUE)
                                            .addComponent(btDelete3, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    125, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGap(28, 28, 28)));
    jPanel18Layout.setVerticalGroup(jPanel18Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel18Layout.createSequentialGroup()
                    .addContainerGap(38, Short.MAX_VALUE)
                    .addGroup(jPanel18Layout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jButton9, javax.swing.GroupLayout.Alignment.TRAILING,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                    jPanel18Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(btDelete3).addComponent(btDelete).addComponent(btEdit)
                                            .addComponent(btAdd)))
                    .addContainerGap()));

    javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
    jPanel15.setLayout(jPanel15Layout);
    jPanel15Layout
            .setHorizontalGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel15Layout.createSequentialGroup().addGap(28, 28, 28)
                            .addGroup(jPanel15Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addGroup(jPanel15Layout.createSequentialGroup().addComponent(jLabel1)
                                            .addGap(18, 18, 18).addComponent(tfBorrowID))
                                    .addGroup(jPanel15Layout.createSequentialGroup().addComponent(jLabel5)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(carBorrowDate, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    212, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel15Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(jPanel15Layout.createSequentialGroup().addComponent(jLabel4)
                                            .addGap(18, 18, 18).addComponent(
                                                    tfReaderID, javax.swing.GroupLayout.PREFERRED_SIZE, 210,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel15Layout.createSequentialGroup().addComponent(jLabel3)
                                            .addPreferredGap(
                                                    javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addComponent(carReturnDate, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    208, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGap(78, 78, 78).addComponent(jLabel2).addGap(18, 18, 18)
                            .addComponent(tfBookBMID, javax.swing.GroupLayout.PREFERRED_SIZE, 263,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(19, 19, 19))
                    .addGroup(jPanel15Layout.createSequentialGroup().addContainerGap()
                            .addGroup(jPanel15Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jScrollPane1).addComponent(jPanel18,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addContainerGap()));
    jPanel15Layout.setVerticalGroup(jPanel15Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel15Layout.createSequentialGroup().addGap(20, 20, 20).addGroup(jPanel15Layout
                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1)
                    .addComponent(tfBorrowID, javax.swing.GroupLayout.PREFERRED_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(tfReaderID, javax.swing.GroupLayout.PREFERRED_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2).addComponent(tfBookBMID, javax.swing.GroupLayout.PREFERRED_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(18, 18, 18)
                    .addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel5)
                            .addComponent(carBorrowDate, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel3).addComponent(carReturnDate,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(jPanel18, javax.swing.GroupLayout.PREFERRED_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(18, 18, 18)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 552, Short.MAX_VALUE)));

    jTabbedPane3.addTab(bundle.getString("Form_Library.jPanel15.TabConstraints.tabTitle"), jPanel15); // NOI18N

    btSearchReturn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_search.png"))); // NOI18N
    btSearchReturn.setMnemonic('S');
    btSearchReturn.setText(bundle.getString("Form_Library.btSearchReturn.text")); // NOI18N
    btSearchReturn.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btSearchReturnActionPerformed(evt);
        }
    });

    tbReturn.setModel(
            new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tbReturn.setAutoCreateRowSorter(true);
    tbReturn.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tbReturnMouseClicked(evt);
        }
    });
    jScrollPane8.setViewportView(tbReturn);

    jLabel18.setText(bundle.getString("Form_Library.jLabel18.text")); // NOI18N

    jLabel19.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
    jLabel19.setText(bundle.getString("Form_Library.jLabel19.text")); // NOI18N

    jButton8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    Action buttonAction = new AbstractAction("",
            new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))) {

        @Override
        public void actionPerformed(ActionEvent evt) {
            ReturnList.getReturnList().clear();
            dmReturn.getDataVector().clear();
            ReturnList.load(
                    "select borrowingmanagement.BorrowID, borrowingmanagement.BookID, reader.RdName, book.BookName, author.AuthorName, publisher.PublisherName, book.Price, borrowingmanagement.BorrowDate, borrowingmanagement.ReturnDate\n"
                            + "from borrowingmanagement\n"
                            + "inner join book on borrowingmanagement.BookID = book.BookID\n"
                            + "inner join author on book.AuthorID = author.AuthorID\n"
                            + "inner join publisher on book.PublisherID = publisher.PublisherID\n"
                            + "inner join reader on borrowingmanagement.RdID = reader.RdID");
            for (ReturnManagement c : ReturnList.getReturnList()) {
                dmReturn.addRow(c.toVector());
            }
        }
    };

    String key = "";

    jButton8.setAction(buttonAction);

    buttonAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_R);

    jButton8.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), key);

    jButton8.getActionMap().put(key, buttonAction);
    jButton8.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton8ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16);
    jPanel16.setLayout(jPanel16Layout);
    jPanel16Layout.setHorizontalGroup(jPanel16Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel16Layout.createSequentialGroup().addGroup(jPanel16Layout
                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel16Layout.createSequentialGroup().addGroup(jPanel16Layout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel16Layout.createSequentialGroup().addGap(259, 259, 259)
                                    .addComponent(jLabel18)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(tfSearchReturn, javax.swing.GroupLayout.PREFERRED_SIZE, 200,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(btSearchReturn, javax.swing.GroupLayout.PREFERRED_SIZE, 100,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGap(18, 18, 18).addComponent(jButton8))
                            .addGroup(jPanel16Layout.createSequentialGroup().addGap(271, 271, 271)
                                    .addComponent(jLabel19)))
                            .addGap(0, 391, Short.MAX_VALUE))
                    .addGroup(jPanel16Layout.createSequentialGroup().addContainerGap()
                            .addComponent(jScrollPane8)))
                    .addContainerGap()));
    jPanel16Layout.setVerticalGroup(jPanel16Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel16Layout.createSequentialGroup().addContainerGap()
                    .addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 37,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(jPanel16Layout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(jPanel16Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(tfSearchReturn, javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(btSearchReturn).addComponent(jLabel18))
                            .addComponent(jButton8, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGap(8, 8, 8)
                    .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 635, Short.MAX_VALUE)
                    .addContainerGap()));

    jTabbedPane3.addTab(bundle.getString("Form_Library.jPanel16.TabConstraints.tabTitle"), jPanel16); // NOI18N

    javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
    jPanel4.setLayout(jPanel4Layout);
    jPanel4Layout.setHorizontalGroup(jPanel4Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jTabbedPane3));
    jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jTabbedPane3));

    jTabbedPane1.addTab(bundle.getString("Form_Library.jPanel4.TabConstraints.tabTitle"), jPanel4); // NOI18N

    lbSupplierID1.setText(bundle.getString("Form_Library.lbSupplierID1.text")); // NOI18N

    lbSupplierName.setText(bundle.getString("Form_Library.lbSupplierName.text")); // NOI18N

    tfSupplierID1.setEditable(false);

    lbPhone.setText(bundle.getString("Form_Library.lbPhone.text")); // NOI18N

    lbAddress.setText(bundle.getString("Form_Library.lbAddress.text")); // NOI18N

    javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14);
    jPanel14.setLayout(jPanel14Layout);
    jPanel14Layout.setHorizontalGroup(jPanel14Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel14Layout.createSequentialGroup().addGap(49, 49, 49)
                    .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lbPhone).addComponent(lbSupplierID1,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 71,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(ftfPhoneSupplier, javax.swing.GroupLayout.DEFAULT_SIZE, 272,
                                    Short.MAX_VALUE)
                            .addComponent(tfSupplierID1))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 272, Short.MAX_VALUE)
                    .addGroup(
                            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(lbSupplierName, javax.swing.GroupLayout.DEFAULT_SIZE, 95,
                                            Short.MAX_VALUE)
                                    .addComponent(lbAddress, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(
                            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(tfSupplierName, javax.swing.GroupLayout.DEFAULT_SIZE, 273,
                                            Short.MAX_VALUE)
                                    .addComponent(tfAddressSuplier))
                    .addGap(49, 49, 49)));
    jPanel14Layout.setVerticalGroup(jPanel14Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel14Layout.createSequentialGroup().addGap(21, 21, 21).addGroup(jPanel14Layout
                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(tfSupplierName, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lbSupplierID1, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(tfSupplierID1).addComponent(lbSupplierName,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    Short.MAX_VALUE)))
                    .addGap(18, 18, 18)
                    .addGroup(jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lbAddress, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel14Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(lbPhone).addComponent(ftfPhoneSupplier)
                                    .addComponent(tfAddressSuplier)))
                    .addContainerGap()));

    tbSupplierAdmin
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tbSupplierAdmin.setColumnSelectionAllowed(true);
    tbSupplierAdmin.setName(""); // NOI18N
    tbSupplierAdmin.setAutoCreateRowSorter(true);
    tbSupplierAdmin.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tbSupplierAdminMouseClicked(evt);
        }
    });
    jScrollPane7.setViewportView(tbSupplierAdmin);

    btEditSupplier.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/gtk-refresh.png"))); // NOI18N
    btEditSupplier.setMnemonic('U');
    btEditSupplier.setText(bundle.getString("Form_Library.btEditSupplier.text")); // NOI18N
    btEditSupplier.setMaximumSize(new java.awt.Dimension(63, 23));
    btEditSupplier.setMinimumSize(new java.awt.Dimension(63, 23));
    btEditSupplier.setPreferredSize(new java.awt.Dimension(63, 23));
    btEditSupplier.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btEditSupplierActionPerformed(evt);
        }
    });

    btDeleteSupplier.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_delete.png"))); // NOI18N
    btDeleteSupplier.setMnemonic('D');
    btDeleteSupplier.setText(bundle.getString("Form_Library.btDeleteSupplier.text")); // NOI18N
    btDeleteSupplier.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btDeleteSupplierActionPerformed(evt);
        }
    });

    btClose3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Redo-16.png"))); // NOI18N
    btClose3.setText(bundle.getString("Form_Library.btClose3.text")); // NOI18N
    btClose3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btClose3ActionPerformed(evt);
        }
    });

    btAddSupplier.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/btn_add.png"))); // NOI18N
    btAddSupplier.setMnemonic('A');
    btAddSupplier.setText(bundle.getString("Form_Library.btAddSupplier.text")); // NOI18N
    btAddSupplier.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btAddSupplierActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17);
    jPanel17.setLayout(jPanel17Layout);
    jPanel17Layout.setHorizontalGroup(jPanel17Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE)
            .addGroup(jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel17Layout.createSequentialGroup().addContainerGap()
                            .addComponent(btAddSupplier, javax.swing.GroupLayout.DEFAULT_SIZE, 199,
                                    Short.MAX_VALUE)
                            .addGap(18, 18, 18)
                            .addComponent(btEditSupplier, javax.swing.GroupLayout.DEFAULT_SIZE, 210,
                                    Short.MAX_VALUE)
                            .addGap(18, 18, 18)
                            .addComponent(btDeleteSupplier, javax.swing.GroupLayout.DEFAULT_SIZE, 210,
                                    Short.MAX_VALUE)
                            .addGap(18, 18, 18)
                            .addComponent(btClose3, javax.swing.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE)
                            .addContainerGap())));
    jPanel17Layout.setVerticalGroup(jPanel17Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE)
            .addGroup(jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel17Layout.createSequentialGroup().addGap(38, 38, 38)
                            .addGroup(jPanel17Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(btAddSupplier, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(btDeleteSupplier, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(btEditSupplier, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(btClose3, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGap(39, 39, 39))));

    javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
    jPanel5.setLayout(jPanel5Layout);
    jPanel5Layout
            .setHorizontalGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel14, javax.swing.GroupLayout.DEFAULT_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel17, javax.swing.GroupLayout.DEFAULT_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                            .addContainerGap().addComponent(jScrollPane7).addContainerGap()));
    jPanel5Layout.setVerticalGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup().addGap(19, 19, 19)
                    .addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE,
                            javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(18, 18, 18)
                    .addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, 63,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(18, 18, 18)
                    .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 377, Short.MAX_VALUE)
                    .addGap(176, 176, 176)));

    jTabbedPane1.addTab(bundle.getString("Form_Library.jPanel5.TabConstraints.tabTitle"), jPanel5); // NOI18N

    jLabel21.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
    jLabel21.setText(bundle.getString("Form_Library.jLabel21.text")); // NOI18N

    jLabel22.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
    jLabel22.setText(bundle.getString("Form_Library.jLabel22.text")); // NOI18N

    tbPhieuQuaHan
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }) {
                boolean[] canEdit = new boolean[] { false, false, false, false };

                public boolean isCellEditable(int rowIndex, int columnIndex) {
                    return false;
                }
            });
    tbPhieuQuaHan.setAutoCreateRowSorter(true);
    jScrollPane9.setViewportView(tbPhieuQuaHan);

    btPrintStas.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Print-16.png"))); // NOI18N
    btPrintStas.setText(bundle.getString("Form_Library.btPrintStas.text")); // NOI18N
    btPrintStas.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btPrintStasActionPerformed(evt);
        }
    });

    taBaoCao.setColumns(20);
    taBaoCao.setFont(new java.awt.Font("Monospaced", 1, 14)); // NOI18N
    taBaoCao.setRows(5);
    taBaoCao.setText(bundle.getString("Form_Library.taBaoCao.text")); // NOI18N
    jScrollPane10.setViewportView(taBaoCao);

    jButton6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Bar Chart-16.png"))); // NOI18N
    jButton6.setText(bundle.getString("Form_Library.jButton6.text")); // NOI18N
    jButton6.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton6ActionPerformed(evt);
        }
    });

    jButton7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/Gmail-16.png"))); // NOI18N
    jButton7.setText(bundle.getString("Form_Library.jButton7.text")); // NOI18N
    jButton7.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton7ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
    jPanel6.setLayout(jPanel6Layout);
    jPanel6Layout.setHorizontalGroup(jPanel6Layout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
                    .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jScrollPane10, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane9, javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel6Layout.createSequentialGroup().addGroup(jPanel6Layout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(jPanel6Layout.createSequentialGroup().addGap(945, 945, 945)
                                            .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 135,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel6Layout.createSequentialGroup().addGroup(jPanel6Layout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel6Layout.createSequentialGroup()
                                                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
                                                            Short.MAX_VALUE)
                                                    .addComponent(jLabel21).addGap(284, 284, 284))
                                            .addGroup(jPanel6Layout.createSequentialGroup().addGap(62, 62, 62)
                                                    .addGroup(jPanel6Layout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.TRAILING)
                                                            .addComponent(lbTongPhieuQuaHan,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE)
                                                            .addComponent(lbTongSach,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE)
                                                            .addGroup(jPanel6Layout.createSequentialGroup()
                                                                    .addGroup(jPanel6Layout.createParallelGroup(
                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(lbTongKhach,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    Short.MAX_VALUE)
                                                                            .addComponent(lbTongPhieu,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    Short.MAX_VALUE)
                                                                            .addComponent(lbTongKhachMuon,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    Short.MAX_VALUE))
                                                                    .addPreferredGap(
                                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                    .addComponent(jLabel23)))
                                                    .addGap(107, 107, 107)))
                                            .addGap(85, 85, 85)
                                            .addGroup(jPanel6Layout
                                                    .createParallelGroup(
                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                    .addComponent(jButton7,
                                                            javax.swing.GroupLayout.Alignment.TRAILING,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 135,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                                    .addComponent(btPrintStas,
                                                            javax.swing.GroupLayout.Alignment.TRAILING,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 135,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE))))
                                    .addGap(11, 11, 11)))
                    .addContainerGap())
            .addGroup(jPanel6Layout.createSequentialGroup().addGap(395, 395, 395).addComponent(jLabel22)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    jPanel6Layout.setVerticalGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup().addContainerGap().addComponent(jLabel21)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, Short.MAX_VALUE)
                    .addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(lbTongKhach)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(lbTongSach)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                    jPanel6Layout.createSequentialGroup().addComponent(lbTongPhieu)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(lbTongKhachMuon))
                            .addComponent(btPrintStas, javax.swing.GroupLayout.Alignment.TRAILING))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel6Layout.createSequentialGroup().addComponent(lbTongPhieuQuaHan)
                                    .addGap(25, 25, 25).addComponent(jLabel22))
                            .addGroup(jPanel6Layout.createSequentialGroup().addComponent(jButton7)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jButton6)))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, 218,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)));

    jTabbedPane1.addTab(bundle.getString("Form_Library.jPanel6.TabConstraints.tabTitle"), jPanel6); // NOI18N

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jTabbedPane1));
    layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING));

    pack();
}

From source file:src.gui.ItSIMPLE.java

/**
    * This method initializes newMenuItem
    */*from   www  .  j a va 2s .  co  m*/
    * @return javax.swing.JMenuItem
    */
private JMenuItem getOpenRecentProjectMenu() {
    if (openRecentMenu == null) {
        openRecentMenu = new JMenu();
        openRecentMenu.setText("Open Recent Project");
    }

    if (openRecentMenu != null) {
        openRecentMenu.removeAll();
        List<?> recentProjects = itSettings.getChild("recentProjects").getChildren("project");
        if (recentProjects.size() > 0) {
            int projectCounter = 1;
            for (Iterator<?> iter = recentProjects.iterator(); iter.hasNext();) {
                Element recentProject = (Element) iter.next();
                String path = recentProject.getChildText("filePath");
                String fileName = path.substring(path.lastIndexOf("\\") + 1, path.length());
                Action action = new AbstractAction(
                        projectCounter + ". " + recentProject.getChildText("name") + " [" + fileName + "]") {
                    /**
                     *
                     */
                    public void actionPerformed(ActionEvent e) {
                        //System.out.println(this.getValue("data"));
                        Element projectElement = (Element) this.getValue("data");
                        if (projectElement != null) {
                            openProjectFromPath(projectElement.getChildText("filePath"));
                        }
                    }
                };
                //action.putValue(Action.SMALL_ICON, new ImageIcon("resources/images/project.png"));
                action.putValue(Action.SHORT_DESCRIPTION, path);
                action.putValue("data", recentProject);
                JMenuItem recentProjectItem = new JMenuItem(action);
                recentProjectItem.setMnemonic((int) (projectCounter + "").charAt(0));
                openRecentMenu.add(recentProjectItem);
                projectCounter++;
            }
        }

    }
    return openRecentMenu;
}

From source file:src.gui.ItSIMPLE.java

/**
 * This method should be called every time a project is opened or closed,
 * to update the items, like domains and problems, in the Petri Net view.
 *//*  ww  w .  j a v  a  2  s. c o m*/
private void updatePetriNetPanels() {
    projectPetriTaskPane.removeAll();
    stateMachineJList.removeAll();
    petriDetailsTextPane.setText("<html><font size='-1' face='Arial'>Select a project.<html>");

    for (int i = 0; i < treeRoot.getChildCount(); i++) {
        ItTreeNode currentNode = (ItTreeNode) treeRoot.getChildAt(i);

        Element project = currentNode.getData();
        //System.out.print(project);
        //Check if the project is a UML project (tag named project)
        if (project.getName().equals("project")) {
            Action action = new AbstractAction(project.getChildText("name")) {
                /**
                *
                */
                private static final long serialVersionUID = -5069133020063854135L;

                public void actionPerformed(ActionEvent e) {
                    Element projectElement = (Element) this.getValue("data");
                    selectedPetriNetProject = projectElement;
                    if (projectElement != null) {
                        String details = "<html><font size='-1' face='Arial'><b>"
                                + projectElement.getChildText("name");
                        if (projectElement.getChildText("description").trim().equals("")) {
                            details = details + "<br>No description...</font></html>";
                        } else {
                            details = details + "<br>" + projectElement.getChildText("description")
                                    + "</font></html>";
                        }
                        petriDetailsTextPane.setText(details);
                        setStateMachineList(projectElement);
                    }
                }
            };
            action.putValue(Action.SMALL_ICON, new ImageIcon("resources/images/project.png"));
            //action.putValue(Action.SHORT_DESCRIPTION, project.getChild("description"));
            action.putValue("data", project);
            projectPetriTaskPane.add(action);

        }

    }
}