Example usage for javax.swing Action MNEMONIC_KEY

List of usage examples for javax.swing Action MNEMONIC_KEY

Introduction

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

Prototype

String MNEMONIC_KEY

To view the source code for javax.swing Action MNEMONIC_KEY.

Click Source Link

Document

The key used for storing an Integer that corresponds to one of the KeyEvent key codes.

Usage

From source file:ca.sfu.federation.action.CreateProjectAction.java

/**
 * CreateProjectAction constructor.//from ww w .  j  a v  a2  s .  com
 * @param Name Action name that will appear in menus.
 * @param MyIcon Action icon.
 * @param ToolTip Action description that will appear in Tool Tip.
 * @param MnemonicId Key mnemonic.
 */
public CreateProjectAction(String Name, Icon MyIcon, String ToolTip, Integer MnemonicId) {
    super(Name, MyIcon);
    this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("control N"));
    this.putValue(Action.LONG_DESCRIPTION, ToolTip);
    this.putValue(Action.MNEMONIC_KEY, MnemonicId);
    this.putValue(Action.SHORT_DESCRIPTION, ToolTip);
    this.putValue(Action.SMALL_ICON, MyIcon);
}

From source file:MenuTest.java

public MenuFrame() {
    setTitle("MenuTest");
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

    JMenu fileMenu = new JMenu("File");
    fileMenu.add(new TestAction("New"));

    // demonstrate accelerators

    JMenuItem openItem = fileMenu.add(new TestAction("Open"));
    openItem.setAccelerator(KeyStroke.getKeyStroke("ctrl O"));

    fileMenu.addSeparator();/*from ww w .  ja  v  a 2  s .co  m*/

    saveAction = new TestAction("Save");
    JMenuItem saveItem = fileMenu.add(saveAction);
    saveItem.setAccelerator(KeyStroke.getKeyStroke("ctrl S"));

    saveAsAction = new TestAction("Save As");
    fileMenu.add(saveAsAction);
    fileMenu.addSeparator();

    fileMenu.add(new AbstractAction("Exit") {
        public void actionPerformed(ActionEvent event) {
            System.exit(0);
        }
    });

    // demonstrate check box and radio button menus

    readonlyItem = new JCheckBoxMenuItem("Read-only");
    readonlyItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            boolean saveOk = !readonlyItem.isSelected();
            saveAction.setEnabled(saveOk);
            saveAsAction.setEnabled(saveOk);
        }
    });

    ButtonGroup group = new ButtonGroup();

    JRadioButtonMenuItem insertItem = new JRadioButtonMenuItem("Insert");
    insertItem.setSelected(true);
    JRadioButtonMenuItem overtypeItem = new JRadioButtonMenuItem("Overtype");

    group.add(insertItem);
    group.add(overtypeItem);

    // demonstrate icons

    Action cutAction = new TestAction("Cut");
    cutAction.putValue(Action.SMALL_ICON, new ImageIcon("cut.gif"));
    Action copyAction = new TestAction("Copy");
    copyAction.putValue(Action.SMALL_ICON, new ImageIcon("copy.gif"));
    Action pasteAction = new TestAction("Paste");
    pasteAction.putValue(Action.SMALL_ICON, new ImageIcon("paste.gif"));

    JMenu editMenu = new JMenu("Edit");
    editMenu.add(cutAction);
    editMenu.add(copyAction);
    editMenu.add(pasteAction);

    // demonstrate nested menus

    JMenu optionMenu = new JMenu("Options");

    optionMenu.add(readonlyItem);
    optionMenu.addSeparator();
    optionMenu.add(insertItem);
    optionMenu.add(overtypeItem);

    editMenu.addSeparator();
    editMenu.add(optionMenu);

    // demonstrate mnemonics

    JMenu helpMenu = new JMenu("Help");
    helpMenu.setMnemonic('H');

    JMenuItem indexItem = new JMenuItem("Index");
    indexItem.setMnemonic('I');
    helpMenu.add(indexItem);

    // you can also add the mnemonic key to an action
    Action aboutAction = new TestAction("About");
    aboutAction.putValue(Action.MNEMONIC_KEY, new Integer('A'));
    helpMenu.add(aboutAction);

    // add all top-level menus to menu bar

    JMenuBar menuBar = new JMenuBar();
    setJMenuBar(menuBar);

    menuBar.add(fileMenu);
    menuBar.add(editMenu);
    menuBar.add(helpMenu);

    // demonstrate pop-ups

    popup = new JPopupMenu();
    popup.add(cutAction);
    popup.add(copyAction);
    popup.add(pasteAction);

    JPanel panel = new JPanel();
    panel.setComponentPopupMenu(popup);
    add(panel);

    // the following line is a workaround for bug 4966109
    panel.addMouseListener(new MouseAdapter() {
    });
}

From source file:userinterface.properties.GUIGraphHandler.java

private void initComponents() {
    theTabs = new JTabbedPane() {

        @Override/*from   w ww  . j  a v a 2  s .  c  o  m*/
        public String getTitleAt(int index) {
            try {
                TabClosePanel panel = (TabClosePanel) getTabComponentAt(index);
                return panel.getTitle();
            } catch (Exception e) {
                return "";
            }
        }

        @Override
        public String getToolTipTextAt(int index) {
            return ((TabClosePanel) getTabComponentAt(index)).getToolTipText();
        }

        @Override
        public void setTitleAt(int index, String title) {

            if (((TabClosePanel) getTabComponentAt(index)) == null) {
                return;
            }

            ((TabClosePanel) getTabComponentAt(index)).setTitle(title);
        }

        @Override
        public void setIconAt(int index, Icon icon) {
            ((TabClosePanel) getTabComponentAt(index)).setIcon(icon);
        }

        @Override
        public void setToolTipTextAt(int index, String toolTipText) {
            ((TabClosePanel) getTabComponentAt(index)).setToolTip(toolTipText);
        }

    };

    theTabs.addMouseListener(this);
    theTabs.addMouseWheelListener(new MouseWheelListener() {

        @Override
        public void mouseWheelMoved(MouseWheelEvent e) {
            if (e.getPreciseWheelRotation() > 0.0) {

                if (theTabs.getSelectedIndex() != (theTabs.getTabCount() - 1))
                    theTabs.setSelectedIndex(theTabs.getSelectedIndex() + 1);
            } else {

                if (theTabs.getSelectedIndex() != 0)
                    theTabs.setSelectedIndex(theTabs.getSelectedIndex() - 1);
            }
        }
    });

    setLayout(new BorderLayout());
    add(theTabs, BorderLayout.CENTER);

    graphOptions = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            GraphOptions graphOptions = options.get(theTabs.getSelectedIndex());
            graphOptions.setVisible(true);
        }
    };

    graphOptions.putValue(Action.NAME, "Graph options");
    graphOptions.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_G));
    graphOptions.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallOptions.png"));
    graphOptions.putValue(Action.LONG_DESCRIPTION, "Displays the options dialog for the graph.");

    zoomIn = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JPanel mgm = models.get(theTabs.getSelectedIndex());

            if (mgm instanceof ChartPanel)
                ((ChartPanel) mgm).zoomInBoth(-1, -1);
            else if (mgm instanceof Graph3D) {
                double rho = ((Graph3D) mgm).getChart3DPanel().getViewPoint().getRho();
                ((Graph3D) mgm).getChart3DPanel().getViewPoint().setRho(rho - 5);
                ((Graph3D) mgm).getChart3DPanel().repaint();
            }
        }
    };

    zoomIn.putValue(Action.NAME, "In");
    zoomIn.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_I));
    zoomIn.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallPlayerFwd.png"));
    zoomIn.putValue(Action.LONG_DESCRIPTION, "Zoom in on the graph.");

    zoomOut = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JPanel mgm = models.get(theTabs.getSelectedIndex());

            if (mgm instanceof ChartPanel)
                ((ChartPanel) mgm).zoomOutBoth(-1, -1);
            else if (mgm instanceof Graph3D) {
                double rho = ((Graph3D) mgm).getChart3DPanel().getViewPoint().getRho();
                ((Graph3D) mgm).getChart3DPanel().getViewPoint().setRho(rho + 5);
                ((Graph3D) mgm).getChart3DPanel().repaint();
            }
        }
    };

    zoomOut.putValue(Action.NAME, "Out");
    zoomOut.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_O));
    zoomOut.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallPlayerRew.png"));
    zoomOut.putValue(Action.LONG_DESCRIPTION, "Zoom out of the graph.");

    zoomDefault = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JPanel mgm = models.get(theTabs.getSelectedIndex());

            if (mgm instanceof ChartPanel)
                ((ChartPanel) mgm).restoreAutoBounds();
            else if (mgm instanceof Graph3D) {
                ((Graph3D) mgm).getChart3DPanel().zoomToFit();
                ((Graph3D) mgm).getChart3DPanel().getDrawable()
                        .setViewPoint(new ViewPoint3D(-Math.PI / 2, Math.PI * 1.124, 70.0, 0.0));
                ((Graph3D) mgm).getChart3DPanel().repaint();

            }
        }
    };

    zoomDefault.putValue(Action.NAME, "Default");
    zoomDefault.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_D));
    zoomDefault.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallPlayerStart.png"));
    zoomDefault.putValue(Action.LONG_DESCRIPTION, "Set the default zoom for the graph.");

    importXML = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            if (plug.showOpenFileDialog(graFilter) != JFileChooser.APPROVE_OPTION)
                return;
            try {
                Graph mgm = Graph.load(plug.getChooserFile());
                addGraph(mgm);
            } catch (GraphException ex) {
                plug.error("Could not import PRISM graph file:\n" + ex.getMessage());
            }
        }
    };
    importXML.putValue(Action.NAME, "PRISM graph (*.gra)");
    importXML.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_I));
    importXML.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallFileGraph.png"));
    importXML.putValue(Action.LONG_DESCRIPTION, "Imports a saved PRISM graph from a file.");

    addFunction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {

            plotNewFunction();
        }
    };
    addFunction.putValue(Action.NAME, "Plot function");
    addFunction.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
    addFunction.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallFunction.png"));
    addFunction.putValue(Action.LONG_DESCRIPTION, "Plots a new specified function on the current graph");

    exportXML = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            if (plug.showSaveFileDialog(graFilter) != JFileChooser.APPROVE_OPTION)
                return;
            Graph mgm = (Graph) models.get(theTabs.getSelectedIndex());
            try {
                mgm.save(plug.getChooserFile());
            } catch (PrismException ex) {
                plug.error("Could not export PRISM graph file:\n" + ex.getMessage());
            }
        }
    };
    exportXML.putValue(Action.NAME, "PRISM graph (*.gra)");
    exportXML.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_X));
    exportXML.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallFileGraph.png"));
    exportXML.putValue(Action.LONG_DESCRIPTION, "Export graph as a PRISM graph file.");

    exportImageJPG = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JPanel model = getModel(theTabs.getSelectedIndex());

            GUIImageExportDialog imageDialog = new GUIImageExportDialog(plug.getGUI(), model,
                    GUIImageExportDialog.JPEG);
            saveImage(imageDialog);
        }
    };
    exportImageJPG.putValue(Action.NAME, "JPEG Interchange Format (*.jpg, *.jpeg)");
    exportImageJPG.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_J));
    exportImageJPG.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallFileImage.png"));
    exportImageJPG.putValue(Action.LONG_DESCRIPTION, "Export graph as a JPEG file.");

    exportImagePNG = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JPanel model = getModel(theTabs.getSelectedIndex());
            GUIImageExportDialog imageDialog = new GUIImageExportDialog(plug.getGUI(), model,
                    GUIImageExportDialog.PNG);
            saveImage(imageDialog);

        }
    };
    exportImagePNG.putValue(Action.NAME, "Portable Network Graphics (*.png)");
    exportImagePNG.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
    exportImagePNG.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallFileImage.png"));
    exportImagePNG.putValue(Action.LONG_DESCRIPTION, "Export graph as a Portable Network Graphics file.");

    exportPDF = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {

            if (plug.showSaveFileDialog(pdfFilter) != JFileChooser.APPROVE_OPTION)
                return;

            JPanel mgm = models.get(theTabs.getSelectedIndex());

            if (mgm instanceof ChartPanel)
                Graph.exportToPDF(plug.getChooserFile(), ((ChartPanel) mgm).getChart());
            else if (mgm instanceof Graph3D) {

                Graph3D.exportToPDF(plug.getChooserFile(), ((Graph3D) mgm).getChart3DPanel());
            }

        }
    };
    exportPDF.putValue(Action.NAME, "Portable document format (*.pdf)");
    exportPDF.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
    exportPDF.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallFilePdf.png"));
    exportPDF.putValue(Action.LONG_DESCRIPTION, "Export the graph as a Portable document format file.");

    exportImageEPS = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JPanel model = getModel(theTabs.getSelectedIndex());

            if (model instanceof ChartPanel) {

                GUIImageExportDialog imageDialog = new GUIImageExportDialog(plug.getGUI(), (ChartPanel) model,
                        GUIImageExportDialog.EPS);

                saveImage(imageDialog);

            }
        }
    };
    exportImageEPS.putValue(Action.NAME, "Encapsulated PostScript (*.eps)");
    exportImageEPS.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_E));
    exportImageEPS.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallFilePdf.png"));
    exportImageEPS.putValue(Action.LONG_DESCRIPTION, "Export graph as an Encapsulated PostScript file.");

    exportMatlab = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            if (plug.showSaveFileDialog(matlabFilter) != JFileChooser.APPROVE_OPTION)
                return;

            JPanel mgm = models.get(theTabs.getSelectedIndex());

            if (mgm instanceof Graph) {

                try {

                    ((Graph) mgm).exportToMatlab(plug.getChooserFile());

                } catch (IOException ex) {
                    plug.error("Could not export Matlab file:\n" + ex.getMessage());
                }

            } else if (mgm instanceof Graph3D) {

                try {

                    ((Graph3D) mgm).exportToMatlab(plug.getChooserFile());

                } catch (IOException e1) {

                    plug.error("Could not export Matlab file:\n" + e1.getMessage());
                    e1.printStackTrace();
                }
            }

        }
    };
    exportMatlab.putValue(Action.NAME, "Matlab file (*.m)");
    exportMatlab.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_M));
    exportMatlab.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallFileMatlab.png"));
    exportMatlab.putValue(Action.LONG_DESCRIPTION, "Export graph as a Matlab file.");

    exportGnuplot = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {

            if (plug.showSaveFileDialog(gnuplotFilter) != JFileChooser.APPROVE_OPTION)
                return;

            JPanel mgm = models.get(theTabs.getSelectedIndex());

            if (mgm instanceof ChartPanel) {

                try {
                    if (mgm instanceof Graph && !(mgm instanceof ParametricGraph)) {

                        ((Graph) mgm).exportToGnuplot(plug.getChooserFile());
                    } else if (mgm instanceof ParametricGraph) {

                        ((ParametricGraph) mgm).exportToGnuplot(plug.getChooserFile());
                    } else if (mgm instanceof Histogram) {
                        ((Histogram) mgm).exportToGnuplot(plug.getChooserFile());
                    }

                } catch (IOException ex) {
                    plug.error("Could not export Gnuplot file:\n" + ex.getMessage());
                }
            }

            else if (mgm instanceof Graph3D) {

                try {

                    ((Graph3D) mgm).exportToGnuplot(plug.getChooserFile());

                } catch (IOException ex) {

                    plug.error("Could not export Gnuplot file:\n" + ex.getMessage());
                    ex.printStackTrace();
                }
            }

        }
    };

    exportGnuplot.putValue(Action.NAME, "GNU Plot file(*.gnuplot)");
    exportGnuplot.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_G));
    exportGnuplot.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallgnuplot.png"));
    exportGnuplot.putValue(Action.LONG_DESCRIPTION, "Export graph as a GNU plot file.");

    printGraph = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JPanel graph = models.get(theTabs.getSelectedIndex());

            if (graph instanceof ChartPanel) {

                if (graph instanceof Graph) {

                    if (!((Graph) graph).getDisplaySettings().getBackgroundColor().equals(Color.white)) {
                        if (plug.questionYesNo(
                                "Your graph has a coloured background, this background will show up on the \n"
                                        + "printout. Would you like to make the current background colour white?") == 0) {

                            ((Graph) graph).getDisplaySettings().setBackgroundColor(Color.white);
                        }
                    }

                } else if (graph instanceof Histogram) {

                    if (!((Histogram) graph).getDisplaySettings().getBackgroundColor().equals(Color.white)) {
                        if (plug.questionYesNo(
                                "Your graph has a coloured background, this background will show up on the \n"
                                        + "printout. Would you like to make the current background colour white?") == 0) {
                            ((Histogram) graph).getDisplaySettings().setBackgroundColor(Color.white);
                        }
                    }

                }

                ((ChartPanel) graph).createChartPrintJob();
            }

            if (graph instanceof Graph3D) {

                ((Graph3D) graph).createPrintJob();
            }
        }
    };

    printGraph.putValue(Action.NAME, "Print graph");
    printGraph.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
    printGraph.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallPrint.png"));
    printGraph.putValue(Action.LONG_DESCRIPTION, "Print the graph to a printer or file");

    deleteGraph = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JPanel graph = models.get(theTabs.getSelectedIndex());

            models.remove(theTabs.getSelectedIndex());
            options.remove(theTabs.getSelectedIndex());
            theTabs.remove(graph);
        }
    };
    deleteGraph.putValue(Action.NAME, "Delete graph");
    deleteGraph.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_D));
    deleteGraph.putValue(Action.SMALL_ICON, GUIPrism.getIconFromImage("smallDelete.png"));
    deleteGraph.putValue(Action.LONG_DESCRIPTION, "Deletes the graph.");

    zoomMenu = new JMenu("Zoom");
    zoomMenu.setMnemonic('Z');
    zoomMenu.setIcon(GUIPrism.getIconFromImage("smallView.png"));
    zoomMenu.add(zoomIn);
    zoomMenu.add(zoomOut);
    zoomMenu.add(zoomDefault);

    exportMenu = new JMenu("Export graph");
    exportMenu.setMnemonic('E');
    exportMenu.setIcon(GUIPrism.getIconFromImage("smallExport.png"));
    exportMenu.add(exportXML);
    exportMenu.add(exportImagePNG);
    exportMenu.add(exportPDF);
    exportMenu.add(exportImageEPS);
    exportMenu.add(exportImageJPG);

    exportMenu.add(exportMatlab);
    exportMenu.add(exportGnuplot);

    importMenu = new JMenu("Import graph");
    importMenu.setMnemonic('I');
    importMenu.setIcon(GUIPrism.getIconFromImage("smallImport.png"));
    importMenu.add(importXML);

    graphMenu.add(graphOptions);
    graphMenu.add(zoomMenu);
    graphMenu.addSeparator();
    graphMenu.add(printGraph);
    graphMenu.add(deleteGraph);
    graphMenu.addSeparator();
    graphMenu.add(exportMenu);
    graphMenu.add(importMenu);
    graphMenu.add(addFunction);

    /* Tab context menu */
    backMenu.add(importXML);
}

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

/**
 * //from  w  w  w. j a v  a  2  s  . c  o  m
 * @return
 */
public Action getFindAction() {
    Action ret = actionMap.get(ACTION_FIND);
    if (ret == null) {
        ret = new AbstractAction(ACTION_FIND, getIcon("find.png", IconSize.SMALL)) {
            private static final long serialVersionUID = 1L;
            private FindReplaceDialog dialog;

            @Override
            public void actionPerformed(ActionEvent event) {
                try {
                    if (dialog == null) {
                        dialog = new FindReplaceDialog(debuggerFrame, DialogType.SEARCH);
                    }
                    dialog.setVisible(true);
                } catch (HeadlessException e) {
                    showError("Error opening file: " + e);
                }
            }
        };
        ret.putValue(Action.SHORT_DESCRIPTION, "Find in script.");
        ret.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('F', menuActionMods));
        ret.putValue(Action.MNEMONIC_KEY, new Integer('F'));
        ret.setEnabled(false);
        actionMap.put(ACTION_FIND, ret);
    }
    return ret;
}

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

/**
 * //from www. j a v a 2 s  .c  o 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:com.intuit.tank.tools.debugger.ActionProducer.java

/**
 * //from   ww w . j a va  2 s. co 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:com.intuit.tank.proxy.ProxyApp.java

@SuppressWarnings("serial")
public JMenuBar createMenu() {
    JMenuBar ret = new JMenuBar();
    JMenu fileMenu = new JMenu("File");
    JMenu sessionMenu = new JMenu("Session");
    ret.add(fileMenu);// w w  w  .j  a  va2 s . co m
    ret.add(sessionMenu);

    fileMenu.add(getMenuItem(openAction));
    fileMenu.add(getMenuItem(saveAction));
    fileMenu.addSeparator();
    fileMenu.add(getMenuItem(filterAction));
    fileMenu.add(getMenuItem(settingsAction));
    fileMenu.addSeparator();
    AbstractAction quitAction = new AbstractAction("Quit") {
        public void actionPerformed(ActionEvent arg0) {
            System.exit(0);
        }
    };
    quitAction.putValue(javax.swing.Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Q, keyMask));
    quitAction.putValue(javax.swing.Action.MNEMONIC_KEY, KeyEvent.VK_Q);

    fileMenu.add(new JMenuItem(quitAction));
    sessionMenu.add(getMenuItem(startAction));
    sessionMenu.add(getMenuItem(stopAction));
    sessionMenu.add(getMenuItem(pauseAction));
    sessionMenu.addSeparator();
    sessionMenu.add(getMenuItem(showHostsAction));

    return ret;
}

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

/**
 * /*from ww w  .  java2  s  .co  m*/
 * @return
 */
public Action getQuitAction() {
    Action ret = actionMap.get(ACTION_QUIT);
    if (ret == null) {
        ret = new AbstractAction(ACTION_QUIT) {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent e) {
                debuggerFrame.quit();

            }
        };
        ret.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(Character.valueOf('Q'), menuActionMods));
        ret.putValue(Action.MNEMONIC_KEY, new Integer('Q'));
        actionMap.put(ACTION_QUIT, 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  ww w.ja  v  a 2s . co m
 */
@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:edu.ku.brc.ui.UIRegistry.java

/**
 * @param action// ww w . ja v a2  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;
}