0

I have a method that adds a player to my game. After clicking the "Add Player" button, I want the player's chosen avatar, name, points, and current bet total to be displayed on a JPanel. Previously added players should also be displayed on the JPanel.

Underneath the panel containing the list of players added, I've put a panel that's supposed to contain all the bets that have been placed by all players.

Problem: How do I display the list of all the players and bets added?

Below is what I have tried so far.

PlayerAdded.java

private List<Player> players = new ArrayList<Player>();

public void playerAdded(Player player)  {
  players.add(player);
  setCurrentPlayer(player);
}

public List<Player> getPlayers() {
  return players;
}

GuiPanels.java

public JPanel playerInfo(PlayerAdded pa) {
  JPanel panel = new JPanel();
  JPanel playerInfoPanel = new JPanel();
  JPanel bettingInfoPanel = new JPanel();
  JScrollPane playerInfoPane = new JScrollPane(playerInfoPanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  JScrollPane bettingInfoPane = new JScrollPane(bettingInfoPanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

  playerInfoPanel.setPreferredSize(new Dimension(150, 50));
  bettingInfoPanel.setPreferredSize(new Dimension(150, 50));

  panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
  playerInfoPanel.setLayout(new GridBagLayout());
  bettingInfoPanel.setLayout(new GridBagLayout());

  GridBagConstraints constraints = new GridBagConstraints();
  constraints.anchor = GridBagConstraints.WEST;
  constraints.insets = new Insets(2, 2, 2, 2);
  constraints.gridx = 0;

  for (int i = 0; i < pa.getPlayers().size(); i++) {
        JLabel name = new JLabel("Player Name: " + pa.getPlayers().get(i).getName());
        JLabel totalPoints = new JLabel("Total Points: " + pa.getPlayers().get(i).getInitialPoints());
        JLabel availablePoints = new JLabel("Available Points: " + pa.getPlayers().get(i).getAvailablePoints());
        JLabel currentBetTotal = new JLabel("Current Bet Total: " + pa.getPlayers().get(i).getCurrentBetTotal());

        playerInfoPanel.add(name);
        playerInfoPanel.add(totalPoints);
        playerInfoPanel.add(availablePoints);
        playerInfoPanel.add(currentBetTotal);
        playerInfoPanel.add(new JLabel(" "));
  }

  playerInfoPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Players"));
  bettingInfoPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Bets"));

  panel.add(playerInfoPane);
  panel.add(bettingInfoPane);

  return panel;
}
camickr
  • 321,443
  • 19
  • 166
  • 288
Wolfizzy
  • 581
  • 1
  • 4
  • 18

0 Answers0