private void jbInit() throws Exception {

        //Replace cell renderer with one that displays the cell text as tooltip.
        topTable = new JTable() {
            private static final long serialVersionUID = -1103518241118990299L;

            public TableCellRenderer getCellRenderer(int row, int column) {
                TableCellRenderer renderer = new DefaultTableCellRenderer() {
                    private static final long serialVersionUID = -9208011190616028553L;

                    public String getToolTipText() {
                        return this.getText();
                    }
                };
                return renderer;
            }
        };

        bottomTable = new JTable() {
            private static final long serialVersionUID = -3703821828491920769L;

            public TableCellRenderer getCellRenderer(int row, int column) {
                TableCellRenderer renderer = new DefaultTableCellRenderer() {
                    private static final long serialVersionUID = -2544330968158633077L;

                    public String getToolTipText() {
                        return this.getText();
                    }
                };
                return renderer;
            }
        };


        border1 = new EtchedBorder(EtchedBorder.RAISED, Color.white, new Color(148, 145, 140));
        titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(148, 145, 140)),
                "All Cards");
        border2 = BorderFactory.createEtchedBorder(Color.white, new Color(148, 145, 140));
        titledBorder2 = new TitledBorder(border2, "Owned Cards");
        this.getContentPane().setLayout(null);
        jScrollPane1.setBorder(titledBorder1);
        jScrollPane1.setBounds(new Rectangle(19, 20, 726, 346));
        jScrollPane2.setBorder(titledBorder2);
        jScrollPane2.setBounds(new Rectangle(19, 458, 726, 218));
        sellButton.setBounds(new Rectangle(180, 403, 146, 49));
        //removeButton.setIcon(upIcon);
        if (!Gui_NewGame.useLAFFonts.isSelected()) sellButton.setFont(new java.awt.Font("Dialog", 0, 13));
        sellButton.setText("Sell Card");
        sellButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                sellButton_actionPerformed(e);
            }
        });
        buyButton.setText("Buy Card");
        buyButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                buyButton_actionPerformed(e);
            }
        });

        if (!Gui_NewGame.useLAFFonts.isSelected()) buyButton.setFont(new java.awt.Font("Dialog", 0, 13));
        buyButton.setBounds(new Rectangle(23, 403, 146, 49));

        detail.setBounds(new Rectangle(765, 23, 239, 323));
        picture.setBounds(new Rectangle(765, 372, 239, 338));
        picture.addMouseListener(new CustomListener());
        //Do not lower statsLabel any lower, we want this to be visible at 1024 x 768 screen size
        this.setTitle("Card Shop");
        jScrollPane3.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        jScrollPane3.setBounds(new Rectangle(6, 168, 225, 143));
        jPanel3.setBounds(new Rectangle(7, 21, 224, 141));
        jPanel3.setLayout(gridLayout1);
        gridLayout1.setColumns(1);
        gridLayout1.setRows(0);
        creditsLabel.setBounds(new Rectangle(19, 365, 720, 31));
        creditsLabel.setText("Total credits: " + questData.getCredits());
        if (!Gui_NewGame.useLAFFonts.isSelected()) creditsLabel.setFont(new java.awt.Font("Dialog", 0, 14));
        sellPercentageLabel.setBounds(new Rectangle(350, 403, 450, 31));
        sellPercentageLabel.setText("(Sell percentage: " + multi + ")");
        if (!Gui_NewGame.useLAFFonts.isSelected()) sellPercentageLabel.setFont(new java.awt.Font("Dialog", 0, 14));
        jLabel1.setText("Click on the column name (like name or color) to sort the cards");
        jLabel1.setBounds(new Rectangle(20, 1, 400, 19));
        this.getContentPane().add(detail, null);
        this.getContentPane().add(picture, null);
        this.getContentPane().add(jScrollPane1, null);
        this.getContentPane().add(jScrollPane2, null);
        this.getContentPane().add(creditsLabel, null);
        this.getContentPane().add(buyButton, null);
        this.getContentPane().add(sellButton, null);
        this.getContentPane().add(sellPercentageLabel, null);
        this.getContentPane().add(jLabel1, null);
        jScrollPane2.getViewport().add(bottomTable, null);
        jScrollPane1.getViewport().add(topTable, null);

        glassPane = new JPanel() {
            private static final long serialVersionUID = 7394924497724994317L;

            @Override
            protected void paintComponent(java.awt.Graphics g) {
                Image image = ImageCache.getOriginalImage(picture.getCard());
                g.drawImage(image, glassPane.getWidth() - image.getWidth(null), glassPane.getHeight()
                        - image.getHeight(null), null);
            }
        };
        setGlassPane(glassPane);
    }