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;
}