Note that there are some explanatory texts on larger screens.

plurals
  1. POAdd Score Counter for Java GUI Project
    primarykey
    data
    text
    <p>I'm working on a Rock Paper Scissors game that uses java GUI and I have it all working great, but I want to add a score counter for both user and computer that are both in the corner of the screen and 1 is added every time either side wins a game. I am not doing a best out of 3 or anything like that, it's just an endless game and I want it to add up as you go. Here is my code, the .jpg and .png files are just images I use for the background and other stuff. I have already attempted at creating a method to keep score (method Score and other stuff related to yourScore and compScore), but I am having trouble displaying it and would welcome any new ideas, although I have been using JLabels for almost everything.</p> <pre><code>public class main extends JFrame implements ActionListener { JButton rock; JButton scissors; JButton paper; JLabel left; ImageIcon rock1; ImageIcon scissors1; ImageIcon scissors2; ImageIcon paper2; ImageIcon paper1; ImageIcon rock2; ImageIcon back; ImageIcon scissorsb; JLabel right; String[] RPS = { "Rock", "Paper", "Scissors" }; Random rand = new Random(); int num = rand.nextInt(RPS.length); int yourChoice = -1; JTextField texter; JLabel winner; Container contentPane = this.getContentPane(); SpringLayout layout = new SpringLayout(); String Tie = "Tie"; String compwins = "Computer wins!"; String youwin = "You win!"; int yourNum = 9; JLabel yourScore; int compNum = 0; JLabel compScore; Font winnerFont = new Font("Font", Font.PLAIN, 35); public main() { super("Rock Paper Scissors"); back = new ImageIcon("image1233450665506.png"); paper1 = new ImageIcon("paper1.png"); paper2 = new ImageIcon("paper2.png"); scissors1 = new ImageIcon("scissors1.png"); scissors2 = new ImageIcon("scissors2.png"); rock1 = new ImageIcon("rock1.png"); rock2 = new ImageIcon("rock2.png"); JLabel background = new JLabel(back); left = new JLabel(); right = new JLabel(); winner = new JLabel(); yourScore = new JLabel(); compScore = new JLabel(); right.setVisible(true); this.setVisible(true); this.setSize(1280, 985); winner.setFont(winnerFont); winner.setHorizontalAlignment(SwingConstants.CENTER); yourScore.setFont(winnerFont); compScore.setFont(winnerFont); contentPane.setLayout(layout); contentPane.add(winner); contentPane.add(left); contentPane.add(right); contentPane.add(yourScore); contentPane.add(compScore); layout.putConstraint(SpringLayout.NORTH, left, 300, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.NORTH, right, 300, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.EAST, right, 0, SpringLayout.EAST, contentPane); rock = new JButton("Rock"); paper = new JButton("Paper"); scissors = new JButton("Scissors"); layout.putConstraint(SpringLayout.WEST, rock, 500, SpringLayout.WEST, contentPane); this.add(rock, BorderLayout.NORTH); layout.putConstraint(SpringLayout.SOUTH, rock, -30, SpringLayout.SOUTH, contentPane); layout.putConstraint(SpringLayout.WEST, rock, 40, SpringLayout.NORTH, contentPane); this.add(paper, BorderLayout.NORTH); layout.putConstraint(SpringLayout.SOUTH, paper, -30, SpringLayout.SOUTH, contentPane); layout.putConstraint(SpringLayout.WEST, paper, 200, SpringLayout.NORTH, contentPane); this.add(scissors, BorderLayout.NORTH); layout.putConstraint(SpringLayout.SOUTH, scissors, -30, SpringLayout.SOUTH, contentPane); layout.putConstraint(SpringLayout.WEST, scissors, 360, SpringLayout.NORTH, contentPane); rock.setBackground(Color.GRAY); rock.setPreferredSize(new Dimension(140, 50)); paper.setBackground(Color.WHITE); paper.setPreferredSize(new Dimension(140, 50)); scissors.setBackground(Color.LIGHT_GRAY); scissors.setPreferredSize(new Dimension(140, 50)); rock.repaint(); scissors.repaint(); paper.repaint(); contentPane.add(background); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); rock.doClick(); paper.doClick(); scissors.doClick(); rock.addActionListener(this); paper.addActionListener(this); scissors.addActionListener(this); } public static void main(String args[]) { main framer = new main(); } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub if (arg0.getSource() == rock) { left.setIcon(rock1); yourChoice = 0; } else if (arg0.getSource() == paper) { left.setIcon(paper1); yourChoice = 1; } else if (arg0.getSource() == scissors) { left.setIcon(scissors1); yourChoice = 2; } computerMove(); // result.repaint(); Score(); } public void Score() { layout.putConstraint(SpringLayout.NORTH, winner, 50, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.WEST, winner, 560, SpringLayout.WEST, contentPane); layout.putConstraint(SpringLayout.SOUTH, compScore, 100, SpringLayout.SOUTH, contentPane); layout.putConstraint(SpringLayout.EAST, compScore, 600, SpringLayout.EAST, contentPane); yourScore = new JLabel(Integer.toString(yourNum)); compScore = new JLabel(Integer.toString(compNum)); if (num == 0 &amp;&amp; yourChoice == 0) { winner.setText(Tie); winner.repaint(); } else if (num == 1 &amp;&amp; yourChoice == 0) { yourNum++; yourScore.repaint(); winner.setText(compwins); winner.repaint(); } else if (num == 2 &amp;&amp; yourChoice == 0) { compNum++; compScore.repaint(); winner.setText(youwin); winner.repaint(); } else if (num == 0 &amp;&amp; yourChoice == 1) { yourNum++; yourScore.repaint(); winner.setText(youwin); winner.repaint(); } else if (num == 1 &amp;&amp; yourChoice == 1) { winner.setText(Tie); winner.repaint(); } else if (num == 2 &amp;&amp; yourChoice == 1) { compNum++; compScore.repaint(); winner.setText(compwins); winner.repaint(); } else if (num == 0 &amp;&amp; yourChoice == 2) { compNum++; compScore.repaint(); winner.setText(compwins); winner.repaint(); } else if (num == 1 &amp;&amp; yourChoice == 2) { yourNum++; yourScore.repaint(); winner.setText(youwin); winner.repaint(); } else if (num == 2 &amp;&amp; yourChoice == 2) { winner.setText(Tie); winner.repaint(); } winner.repaint(); yourScore.repaint(); compScore.repaint(); yourScore.setForeground(Color.RED); compScore.setForeground(Color.RED); winner.setForeground(Color.RED); } public void computerMove() { num = rand.nextInt(RPS.length); if (num == 0) { right.setIcon(rock2); } else if (num == 1) { right.setIcon(paper2); } else if (num == 2) { right.setIcon(scissors2); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload