/** * Create the pixel location panel * * @param labelFont the font for the labels * @return the location panel */ public JPanel createLocationPanel(Font labelFont) { // create a location panel JPanel locationPanel = new JPanel(); locationPanel.setLayout(new FlowLayout()); Box hBox = Box.createHorizontalBox(); // create the labels rowLabel = new JLabel("Row:"); colLabel = new JLabel("Column:"); // create the text fields colValue = new JTextField(Integer.toString(colIndex + numberBase), 6); colValue.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { displayPixelInformation(colValue.getText(), rowValue.getText()); } }); rowValue = new JTextField(Integer.toString(rowIndex + numberBase), 6); rowValue.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { displayPixelInformation(colValue.getText(), rowValue.getText()); } }); // set up the next and previous buttons setUpNextAndPreviousButtons(); // set up the font for the labels colLabel.setFont(labelFont); rowLabel.setFont(labelFont); colValue.setFont(labelFont); rowValue.setFont(labelFont); // add the items to the vertical box and the box to the panel hBox.add(Box.createHorizontalGlue()); hBox.add(rowLabel); hBox.add(rowPrevButton); hBox.add(rowValue); hBox.add(rowNextButton); hBox.add(Box.createHorizontalStrut(10)); hBox.add(colLabel); hBox.add(colPrevButton); hBox.add(colValue); hBox.add(colNextButton); locationPanel.add(hBox); hBox.add(Box.createHorizontalGlue()); return locationPanel; }
/* * The following method creates the textfield to change the text * and the button to update the label. * postcondition: returns the panel containing the textfield and button. */ public JPanel createUpdateButton() { JLabel textLabel = new JLabel(new String("Change text to: ")); textField = new JTextField(new String("Big Java"), 20); textField.setFont(new Font(("Times"), Font.PLAIN, 12)); update = new JButton(new String("Update")); update.setDefaultCapable(true); // This class is used to create a special ActionListener for this menu item class ButtonListener implements ActionListener { /* * This method is called when the update button is clicked */ public void actionPerformed(ActionEvent event) { // Call the method to change the text on the screen. setSampleFont(); } // end actionPerformed method } ActionListener listener = new ButtonListener(); update.addActionListener(listener); JPanel panel = new JPanel(); panel.add(textLabel); panel.add(textField); panel.add(update); return panel; } // end createUpdateButton method
/** This method is called from within the constructor to initialize the form. */ public void initComponents() { /** **************** The components ********************************* */ firstPanel = new JPanel(); firstPanel.setBorder(BorderFactory.createEmptyBorder(10, 5, 5, 2)); // If put to False: we see the container's background firstPanel.setOpaque(false); // rows, columns, horizontalGap, verticalGap firstPanel.setLayout(new GridLayout(4, 2, 3, 3)); this.setLayout(new GridLayout(2, 1, 3, 3)); this.add(firstPanel); proxyStackNameLabel = new JLabel("Proxy stack name:"); proxyStackNameLabel.setToolTipText("The name of the stack to set"); // Alignment of the text proxyStackNameLabel.setHorizontalAlignment(AbstractButton.CENTER); // Color of the text proxyStackNameLabel.setForeground(Color.black); // Size of the text proxyStackNameLabel.setFont(new Font("Dialog", 1, 12)); // If put to true: we see the label's background proxyStackNameLabel.setOpaque(true); proxyStackNameLabel.setBackground(ProxyLauncher.labelBackGroundColor); proxyStackNameLabel.setBorder(ProxyLauncher.labelBorder); proxyStackNameTextField = new JTextField(20); proxyStackNameTextField.setHorizontalAlignment(AbstractButton.CENTER); proxyStackNameTextField.setFont(new Font("Dialog", 0, 14)); proxyStackNameTextField.setBackground(ProxyLauncher.textBackGroundColor); proxyStackNameTextField.setForeground(Color.black); proxyStackNameTextField.setBorder(BorderFactory.createLoweredBevelBorder()); firstPanel.add(proxyStackNameLabel); firstPanel.add(proxyStackNameTextField); proxyIPAddressLabel = new JLabel("Proxy IP address:"); proxyIPAddressLabel.setToolTipText("The address of the proxy to set"); // Alignment of the text proxyIPAddressLabel.setHorizontalAlignment(AbstractButton.CENTER); // Color of the text proxyIPAddressLabel.setForeground(Color.black); // Size of the text proxyIPAddressLabel.setFont(new Font("Dialog", 1, 12)); // If put to true: we see the label's background proxyIPAddressLabel.setOpaque(true); proxyIPAddressLabel.setBackground(ProxyLauncher.labelBackGroundColor); proxyIPAddressLabel.setBorder(ProxyLauncher.labelBorder); proxyIPAddressTextField = new JTextField(20); proxyIPAddressTextField.setHorizontalAlignment(AbstractButton.CENTER); proxyIPAddressTextField.setFont(new Font("Dialog", 0, 14)); proxyIPAddressTextField.setBackground(ProxyLauncher.textBackGroundColor); proxyIPAddressTextField.setForeground(Color.black); proxyIPAddressTextField.setBorder(BorderFactory.createLoweredBevelBorder()); firstPanel.add(proxyIPAddressLabel); firstPanel.add(proxyIPAddressTextField); outboundProxyLabel = new JLabel("Next hop (IP:port/protocol):"); outboundProxyLabel.setToolTipText( "Location where the message will be sent " + "if all the resolutions (DNS, router,...) fail. If not set: 404 will be replied"); // Alignment of the text outboundProxyLabel.setHorizontalAlignment(AbstractButton.CENTER); // Color of the text outboundProxyLabel.setForeground(Color.black); // Size of the text outboundProxyLabel.setFont(new Font("Dialog", 1, 12)); // If put to true: we see the label's background outboundProxyLabel.setOpaque(true); outboundProxyLabel.setBackground(ProxyLauncher.labelBackGroundColor); outboundProxyLabel.setBorder(ProxyLauncher.labelBorder); outboundProxyTextField = new JTextField(20); outboundProxyTextField.setHorizontalAlignment(AbstractButton.CENTER); outboundProxyTextField.setFont(new Font("Dialog", 0, 14)); outboundProxyTextField.setBackground(ProxyLauncher.textBackGroundColor); outboundProxyTextField.setForeground(Color.black); outboundProxyTextField.setBorder(BorderFactory.createLoweredBevelBorder()); firstPanel.add(outboundProxyLabel); firstPanel.add(outboundProxyTextField); routerClassLabel = new JLabel("The Router class name:"); routerClassLabel.setToolTipText( "The class name (full java package name) of the router" + " used to forward the messages"); // Alignment of the text routerClassLabel.setHorizontalAlignment(AbstractButton.CENTER); // Color of the text routerClassLabel.setForeground(Color.black); // Size of the text routerClassLabel.setFont(new Font("Dialog", 1, 12)); // If put to true: we see the label's background routerClassLabel.setOpaque(true); routerClassLabel.setBackground(ProxyLauncher.labelBackGroundColor); routerClassLabel.setBorder(ProxyLauncher.labelBorder); routerClassTextField = new JTextField(20); routerClassTextField.setHorizontalAlignment(AbstractButton.CENTER); routerClassTextField.setFont(new Font("Dialog", 0, 12)); routerClassTextField.setBackground(ProxyLauncher.textBackGroundColor); routerClassTextField.setForeground(Color.black); routerClassTextField.setBorder(BorderFactory.createLoweredBevelBorder()); firstPanel.add(routerClassLabel); firstPanel.add(routerClassTextField); JPanel panel = new JPanel(); // top, left, bottom, right panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 2)); // If put to False: we see the container's background panel.setOpaque(false); // rows, columns, horizontalGap, verticalGap panel.setLayout(new BorderLayout()); this.add(panel); JLabel lpLabel = new JLabel("Listening points list:"); lpLabel.setVisible(true); lpLabel.setToolTipText("The listening points of the proxy"); lpLabel.setHorizontalAlignment(AbstractButton.CENTER); lpLabel.setForeground(Color.black); lpLabel.setFont(new Font("Dialog", 1, 12)); lpLabel.setOpaque(true); lpLabel.setBackground(ProxyLauncher.labelBackGroundColor); lpLabel.setBorder(ProxyLauncher.labelBorder); panel.add(lpLabel, BorderLayout.NORTH); // this.add(listeningPointsList); JScrollPane scrollPane = new JScrollPane( listeningPointsList, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); panel.add(scrollPane, BorderLayout.CENTER); thirdPanel = new JPanel(); thirdPanel.setOpaque(false); // top, left, bottom, right thirdPanel.setBorder(BorderFactory.createEmptyBorder(3, 0, 5, 0)); thirdPanel.setLayout(new GridLayout(1, 2, 3, 3)); JButton addLPButton = new JButton(" Add "); addLPButton.setToolTipText("Add a listening point"); addLPButton.setFocusPainted(false); addLPButton.setFont(new Font("Dialog", 1, 16)); addLPButton.setBackground(ProxyLauncher.buttonBackGroundColor); addLPButton.setBorder(ProxyLauncher.buttonBorder); addLPButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { addLPButtonActionPerformed(evt); } }); thirdPanel.add(addLPButton); JButton removeLPButton = new JButton(" Remove "); removeLPButton.setToolTipText("Remove a listening point"); removeLPButton.setFocusPainted(false); removeLPButton.setFont(new Font("Dialog", 1, 16)); removeLPButton.setBackground(ProxyLauncher.buttonBackGroundColor); removeLPButton.setBorder(ProxyLauncher.buttonBorder); removeLPButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { removeLPButtonActionPerformed(evt); } }); thirdPanel.add(removeLPButton); panel.add(thirdPanel, BorderLayout.SOUTH); }
// CONSTRUCTOR public FACFrame() { // SET PROPERTIES OF THE MAIN FRAME setTitle("Fully Associative Cache"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setIconImage(Toolkit.getDefaultToolkit().createImage(FACFrame.class.getResource("cam.gif"))); // CREATE COMPONENTS AND SET THEIR PROPERTIES // NAVIGATION BUTTONS restart = new JButton("Restart"); next = new JButton("Next"); back = new JButton("Back"); quit = new JButton("Quit"); // CACHE HITS AND MISSES INFO. lCacheHits = new JLabel("Cache Hits"); lCacheMisses = new JLabel("Cache Misses"); tCacheHits = new JTextField(5); tCacheMisses = new JTextField(5); tCacheHits.setEditable(false); tCacheHits.setFont(new Font("Monospaced", Font.BOLD, 14)); tCacheHits.setText(" 0"); tCacheMisses.setEditable(false); tCacheMisses.setFont(new Font("Monospaced", Font.BOLD, 14)); tCacheMisses.setText(" 0"); // PROGRESS UPDATE AREA tProgress = new JTextArea(3, 45); tProgress.setEditable(false); tProgress.setLineWrap(true); tProgress.setWrapStyleWord(true); tProgress.setCaretPosition(0); tProgress.setFont(new Font("Serif", Font.BOLD + Font.ITALIC, 16)); tProgress.setText( "Welcome to Fully Associative Cache!\nThe system specs are as follows -" + "\n 16 Blocks in Cache\n 32 Blocks in Main Memory\n 8 Words per Block" + "\n The replacement algorithm shown is the Least-Recently-Used algorithm" + "\n as it is the most commonly used one." + "\nPlease generate the Address Reference String." + "\nThen click on \"Next\" to continue."); progressScroll = new JScrollPane(); progressScroll.getViewport().add(tProgress); progressScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); lProgress = new JLabel("PROGRESS UPDATE"); // ADDRESS REFERENCE STRING addRefStrList = new JList(); addRefStrList.setEnabled(false); addRefStrScroll = new JScrollPane(); addRefStrScroll.getViewport().setView(addRefStrList); addRefStrScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); addRefStrScroll.setPreferredSize(new Dimension(140, 300)); // BUTTONS USED TO ADDRESS GENERATION autoGen = new JButton("Auto Generate Add. Ref. Str."); selfGen = new JButton("Self Generate Add. Ref. Str."); // BITS IN MAIN MEMORY ADDRESS lBits = new JLabel(" TAG WORD"); tTag = new JTextField(9); tTag.setEditable(false); tWord = new JTextField(7); tWord.setEditable(false); // SET THE FONT STYLES FOR THE BITS IN MAIN MEMORY ADDRESS tTag.setFont(new Font("Monospaced", Font.BOLD, 14)); tWord.setFont(new Font("Monospaced", Font.BOLD, 14)); // REGISTER LISTENERS restart.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { reStart(); } }); next.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { nextClicked = true; step(); } }); back.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { nextClicked = false; step(); } }); quit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { int confirmQuit = JOptionPane.showConfirmDialog( null, "Really Quit?", "Quit Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); switch (confirmQuit) { case JOptionPane.YES_OPTION: removeInstance(); case JOptionPane.NO_OPTION: break; } } }); autoGen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { autoGenerateString(); } }); selfGen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { selfGenerateString(); } }); // DISABLE NAVIGATION BUTTONS FOR NOW next.setEnabled(false); back.setEnabled(false); // CREATE PANELS cachePanel = new FACachePanel(); memoryPanel = new MemoryPanel(); bottomPanel = new JPanel(); cache = new JPanel(); cacheHitsMisses = new JPanel(); pAutoSelfGen = new JPanel(); pAddRefStr = new JPanel(); pEastPanel = new JPanel(); pBitsInMM = new JPanel(); // ADD COMPONENTS TO THE PANELS // PANEL WITH PROGRESS UPDATE TEXT AREA AND NAVIGATION BUTTONS bottomPanel.add(lProgress); bottomPanel.add(progressScroll); bottomPanel.add(restart); bottomPanel.add(next); bottomPanel.add(back); bottomPanel.add(quit); // PANEL WITH CACHE BLOCKS, HITS AND MISSES INFO. cacheHitsMisses.add(lCacheHits); cacheHitsMisses.add(tCacheHits); cacheHitsMisses.add(lCacheMisses); cacheHitsMisses.add(tCacheMisses); cacheHMBorder = BorderFactory.createEtchedBorder(); cacheHitsMisses.setBorder(BorderFactory.createTitledBorder(cacheHMBorder, "")); cache.setLayout(new BorderLayout()); cache.add(cachePanel, "Center"); cache.add(cacheHitsMisses, "South"); // PANEL WITH ADDRESS REFERENCE STRING AND STRING GENERATION BUTTONS pAutoSelfGen.setLayout(new GridLayout(2, 1)); pAutoSelfGen.add(autoGen); pAutoSelfGen.add(selfGen); pAddRefStr.setLayout(new BorderLayout()); pAddRefStr.setPreferredSize(new Dimension(160, 400)); pAddRefStr.add(addRefStrScroll, "Center"); pAddRefStr.add(pAutoSelfGen, "South"); addRefStrBorder = BorderFactory.createEtchedBorder(); pAddRefStr.setBorder( BorderFactory.createTitledBorder(addRefStrBorder, " Address Reference String ")); // PANEL WITH THE MAIN MEMORY ADDRESS BITS INFO. pBitsInMM.setLayout(new BorderLayout()); bitsInMMBorder = BorderFactory.createEtchedBorder(); pBitsInMM.setBorder(BorderFactory.createTitledBorder(bitsInMMBorder, " Main Memory Address ")); pBitsInMM.add(tTag, "Center"); pBitsInMM.add(tWord, "East"); pBitsInMM.add(lBits, "South"); // PANEL CONTAINING THE ADDRESS REF. STRING PANEL AND BITS IN MM PANEL pEastPanel.setLayout(new BorderLayout()); pEastPanel.setPreferredSize(new Dimension(310, 650)); pEastPanel.add(pAddRefStr, "Center"); pEastPanel.add(pBitsInMM, "South"); // ADD COMPONENTS TO THE FRAME CONTAINER Container c = getContentPane(); c.setLayout(new BorderLayout()); c.add(cache, "West"); c.add(memoryPanel, "Center"); c.add(pEastPanel, "East"); c.add(bottomPanel, "South"); // INITIALIZE ARRAYS THAT HOLDS STATUS OF EMPTY AND LRU CACHE BLOCKS for (int i = 0; i < 16; i++) { statusCacheEmpty[i] = true; statusCacheLRU[i] = 0; } /* * CALL THE FUNCTION TO GENERATE THE ARRAY addresses, WHICH CONTAINS ALL THE POSSIBLE MEMORY ADDRESSES * THIS ARRAY WILL BE USEFUL IN THE AUTO GENERATION OF ADDRESSES AS WELL AS FOR VALIDATION OF * ADDRESS STRINGS INPUT BY THE USER IF HE/SHE CHOOSES SELF GENERATION. */ createAddresses(); pack(); } // END CONSTRUCTOR
/** Instantiates a new game panel. */ public GamePanel() { super(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); CARD_BACK.add(new CardPanel("img/cards/BACK.png")); // The code below is just for reference // dealerCards = new ArrayList<>(); // for (int i = 0; i < dealerInHand.size(); i++) // { // dealerCards.add(new CardPanel("img/cards/" + dealerInHand.get(i) + ".png")); // } // // playerCardsOne = new ArrayList<>(); // for (int i = 0; i < playerInHandOne.size(); i++) // { // playerCardsOne.add(new CardPanel("img/cards/" + playerInHandOne.get(i) + ".png")); // } // // playerCardsTwo = new ArrayList<>(); // for (int i = 0; i < playerInHandTwo.size(); i++) // { // playerCardsTwo.add(new CardPanel("img/cards/" + playerInHandTwo.get(i) + ".png")); // } // The code above is just for reference dealerDeckContainer = new CardDeckContainer(); dealerStatContainer = new JPanel(new BorderLayout()); dealerStatContainer.setOpaque(false); JLabel dealerStatTitle = new JLabel("Dealer in Hand"); dealerStatTitle.setForeground(Color.WHITE); dealerStatTitle.setHorizontalAlignment(JLabel.CENTER); dealerStatTitle.setFont(new Font("", Font.PLAIN, 12)); dealerStatPoint.setForeground(Color.WHITE); dealerStatPoint.setHorizontalAlignment(JLabel.CENTER); dealerStatPoint.setFont(new Font("", Font.PLAIN, 12)); dealerStatContainer.add(dealerStatTitle, BorderLayout.NORTH); dealerStatContainer.add(dealerStatPoint, BorderLayout.CENTER); playerDeckOneContainer = new CardDeckContainer(); playerStatOneContainer = new JPanel(new BorderLayout()); playerStatOneContainer.setOpaque(false); JLabel playerStatOneTitle = new JLabel("Player in Hand"); playerStatOneTitle.setForeground(Color.WHITE); playerStatOneTitle.setHorizontalAlignment(JLabel.CENTER); playerStatOneTitle.setFont(new Font("", Font.PLAIN, 12)); playerStatOnePoint.setForeground(Color.WHITE); playerStatOnePoint.setHorizontalAlignment(JLabel.CENTER); playerStatOnePoint.setFont(new Font("", Font.PLAIN, 12)); playerStatOneDescription.setForeground(Color.WHITE); playerStatOneDescription.setHorizontalAlignment(JLabel.CENTER); playerStatOneDescription.setFont(new Font("", Font.BOLD, 12)); playerStatOneContainer.add(playerStatOneTitle, BorderLayout.NORTH); playerStatOneContainer.add(playerStatOnePoint, BorderLayout.CENTER); playerStatOneContainer.add(playerStatOneDescription, BorderLayout.SOUTH); playerDeckTwoContainer = new CardDeckContainer(new CardDeckPanel(CARD_BACK)); playerStatTwoContainer = new JPanel(new BorderLayout()); playerStatTwoContainer.setOpaque(false); JLabel playerStatTwoTitle = new JLabel("Player Hand 2"); playerStatTwoTitle.setForeground(Color.WHITE); playerStatTwoTitle.setHorizontalAlignment(JLabel.CENTER); playerStatTwoTitle.setFont(new Font("", Font.PLAIN, 12)); playerStatTwoPoint.setForeground(Color.WHITE); playerStatTwoPoint.setHorizontalAlignment(JLabel.CENTER); playerStatTwoPoint.setFont(new Font("", Font.PLAIN, 12)); playerStatTwoDescription.setForeground(Color.WHITE); playerStatTwoDescription.setHorizontalAlignment(JLabel.CENTER); playerStatTwoDescription.setFont(new Font("", Font.BOLD, 12)); playerStatTwoContainer.add(playerStatTwoTitle, BorderLayout.NORTH); playerStatTwoContainer.add(playerStatTwoPoint, BorderLayout.CENTER); playerStatTwoContainer.add(playerStatTwoDescription, BorderLayout.SOUTH); gameStatPanel = new JPanel(); gameStatPanelPlayerName = new JLabel(); gameStatPanelCurrentChips = new JLabel(); gameStatPanelCurrentBet = new JLabel(); gameStatPanelPlayerName.setFont(new Font("", Font.PLAIN, 14)); gameStatPanelPlayerName.setForeground(Color.WHITE); gameStatPanelPlayerName.setBorder(new EmptyBorder(0, 0, 0, 5)); gameStatPanelCurrentChips.setFont(new Font("", Font.PLAIN, 14)); gameStatPanelCurrentChips.setForeground(Color.WHITE); gameStatPanelCurrentChips.setBorder(new EmptyBorder(0, 5, 0, 5)); gameStatPanelCurrentBet.setFont(new Font("", Font.PLAIN, 14)); gameStatPanelCurrentBet.setForeground(Color.WHITE); gameStatPanelCurrentBet.setBorder(new EmptyBorder(0, 5, 0, 0)); gameStatPanel.add(gameStatPanelPlayerName); gameStatPanel.add(gameStatPanelCurrentChips); gameStatPanel.add(gameStatPanelCurrentBet); gameStatPanel.setOpaque(false); gameButtonPanel = new JPanel(cardLayout); betButtonPanel = new JPanel(); playButtonPanel = new JPanel(); JLabel pleaseBet = new JLabel("Please bet: "); pleaseBet.setFont(new Font("", Font.PLAIN, 14)); pleaseBet.setForeground(Color.WHITE); betButtonPanel.add(pleaseBet); betField = new JTextField(); betField.setFont(new Font("", Font.PLAIN, 14)); betField.setPreferredSize(new Dimension(80, 28)); betButtonPanel.add(betField); JButton betButton = new JButton("Bet"); JButton backButton = new JButton("Back"); betButtonPanel.add(betButton); betButtonPanel.add(backButton); betButtonPanel.setOpaque(false); hitButton = new JButton("Hit"); standButton = new JButton("Stand"); doubleButton = new JButton("Double"); // JButton splitButton = new JButton("Split"); // splitButton.setEnabled(false); playButtonPanel.add(hitButton); playButtonPanel.add(standButton); playButtonPanel.add(doubleButton); // playButtonPanel.add(splitButton); playButtonPanel.setOpaque(false); gameButtonPanel.add("betbutton", betButtonPanel); gameButtonPanel.add("playbutton", playButtonPanel); gameButtonPanel.setOpaque(false); add(gameStatPanel); add(dealerDeckContainer); add(playerDeckTwoContainer); add(playerDeckOneContainer); add(gameButtonPanel); this.addComponentListener( new ComponentAdapter() { @Override public void componentShown(ComponentEvent e) { Game.initGame(); } }); betButtonPanel.addComponentListener( new ComponentAdapter() { @Override public void componentShown(ComponentEvent e) { betField.setText(""); if (BlackJack.player.getChip() <= 0) { JOptionPane.showMessageDialog( null, "You are penniless!", "Information", JOptionPane.INFORMATION_MESSAGE); User.deleteUserByName(BlackJack.player.getName()); BlackJack.player = new Player(true); BlackJack.dealer = new Player(false); BlackjackFrame.cardLayout.show(getParent(), "welcome"); } hitButton.setEnabled(true); standButton.setEnabled(true); doubleButton.setEnabled(true); BlackJack.player.setBet(0); BlackJack.player.getHandOne().clear(); BlackJack.player.getHandTwo().clear(); BlackJack.dealer.getHandOne().clear(); GamePanel.gameStatPanelPlayerName.setText("Player: " + BlackJack.player.getName()); GamePanel.gameStatPanelCurrentChips.setText("Chips: " + BlackJack.player.getChip()); GamePanel.gameStatPanelCurrentBet.setText("Bet: 0"); GamePanel.gameStatPanel.repaint(); } }); betField.addKeyListener( new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { int keyChar = e.getKeyChar(); if (keyChar < KeyEvent.VK_0 || keyChar > KeyEvent.VK_9) { e.consume(); } } }); betButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Game.bet(Integer.parseInt(betField.getText())); } }); backButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int choice = JOptionPane.showConfirmDialog( null, "Do you want to go back to main menu?\nYour record will be saved.", "Go Back", JOptionPane.YES_NO_OPTION); if (choice == JOptionPane.YES_OPTION) { User.updateUser(); BlackJack.player = new Player(true); BlackJack.dealer = new Player(false); BlackjackFrame.cardLayout.show(getParent(), "welcome"); } } }); hitButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { doubleButton.setEnabled(false); Game.hit(); } }); standButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { hitButton.setEnabled(false); standButton.setEnabled(false); doubleButton.setEnabled(false); playerStatOneDescription.setText("Stand"); playerStatOneDescription.repaint(); Game.dealerGame(); } }); doubleButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { hitButton.setEnabled(false); standButton.setEnabled(false); doubleButton.setEnabled(false); if (!Game.doubleDown()) { hitButton.setEnabled(true); standButton.setEnabled(true); doubleButton.setEnabled(false); } } }); }