Java poker implementation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PlayerPanel.java 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /*
  2. * Copyright (c) Chris 'MD87' Smith, 2007. All rights reserved.
  3. *
  4. * This code may not be redistributed without prior permission from the
  5. * aforementioned copyright holder(s).
  6. */
  7. package com.md87.cardgame.config;
  8. import com.md87.cardgame.ui.GameWindow;
  9. import com.md87.cardgame.Player;
  10. import com.md87.cardgame.config.controllers.ControllerInfo;
  11. import com.md87.cardgame.interfaces.Game;
  12. import java.awt.Dimension;
  13. import java.awt.GridBagConstraints;
  14. import java.awt.GridBagLayout;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. import javax.swing.BorderFactory;
  18. import javax.swing.JCheckBox;
  19. import javax.swing.JComboBox;
  20. import javax.swing.JPanel;
  21. import javax.swing.JSpinner;
  22. import javax.swing.JTextField;
  23. import javax.swing.SpinnerNumberModel;
  24. /**
  25. *
  26. * @author Chris
  27. */
  28. public class PlayerPanel extends JPanel {
  29. private static final int MAXPLAYERS = 14;
  30. private final JPanel innerPanel = new JPanel();
  31. private final List<JCheckBox> checkBoxes = new ArrayList<JCheckBox>();
  32. private final List<JTextField> textFields = new ArrayList<JTextField>();
  33. private final List<JSpinner> spinners = new ArrayList<JSpinner>();
  34. private final List<JComboBox> comboBoxes = new ArrayList<JComboBox>();
  35. public PlayerPanel() {
  36. super();
  37. innerPanel.setLayout(new GridBagLayout());
  38. final GridBagConstraints constraints = new GridBagConstraints();
  39. constraints.insets.set(3, 3, 3, 3);
  40. for (int i = 0; i < MAXPLAYERS; i++) {
  41. final JCheckBox cb = new JCheckBox();
  42. if (i < 4) {
  43. cb.setSelected(true);
  44. if (i < 2) {
  45. cb.setEnabled(false);
  46. }
  47. }
  48. final JTextField tf = new JTextField();
  49. tf.setText("Player " + (i + 1));
  50. tf.setPreferredSize(new Dimension(130, 20));
  51. final JSpinner sp = new JSpinner(new SpinnerNumberModel(1500, 100, 1000000000, 100));
  52. sp.setPreferredSize(new Dimension(100, 20));
  53. final JComboBox co = new JComboBox(ControllerInfo.getControllers());
  54. co.setPreferredSize(new Dimension(160, 20));
  55. if (i > 0) {
  56. co.setSelectedIndex(3);
  57. }
  58. checkBoxes.add(cb);
  59. textFields.add(tf);
  60. spinners.add(sp);
  61. comboBoxes.add(co);
  62. constraints.gridy = i;
  63. constraints.gridx = 0;
  64. innerPanel.add(cb, constraints);
  65. constraints.gridx++;
  66. innerPanel.add(tf, constraints);
  67. constraints.gridx++;
  68. innerPanel.add(sp, constraints);
  69. constraints.gridx++;
  70. innerPanel.add(co, constraints);
  71. }
  72. innerPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
  73. add(innerPanel);
  74. }
  75. public void setMaxPlayers(final int maxPlayers) {
  76. for (int i = 2; i < MAXPLAYERS; i++) {
  77. if (i < maxPlayers) {
  78. checkBoxes.get(i).setEnabled(true);
  79. textFields.get(i).setEnabled(true);
  80. spinners.get(i).setEnabled(true);
  81. comboBoxes.get(i).setEnabled(true);
  82. } else {
  83. checkBoxes.get(i).setSelected(false);
  84. checkBoxes.get(i).setEnabled(false);
  85. textFields.get(i).setEnabled(false);
  86. spinners.get(i).setEnabled(false);
  87. comboBoxes.get(i).setEnabled(false);
  88. }
  89. }
  90. }
  91. public int getNumPlayers() {
  92. int res = 0;
  93. for (int i = 0; i < MAXPLAYERS; i++) {
  94. if (checkBoxes.get(i).isSelected()) {
  95. res++;
  96. }
  97. }
  98. return res;
  99. }
  100. public List<Player> getPlayers(final Game game, final GameWindow window) {
  101. final List<Player> res = new ArrayList<Player>();
  102. for (int i = 0; i < MAXPLAYERS; i++) {
  103. if (checkBoxes.get(i).isSelected()) {
  104. res.add(new Player(game, textFields.get(i).getText(),
  105. (Integer) spinners.get(i).getValue(),
  106. ((ControllerInfo) comboBoxes.get(i).getSelectedItem())
  107. .getController(game, window)));
  108. }
  109. }
  110. return res;
  111. }
  112. }