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.

BettingPanel.java 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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 java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. import javax.swing.BorderFactory;
  13. import javax.swing.JLabel;
  14. import javax.swing.JPanel;
  15. import javax.swing.JRadioButton;
  16. import javax.swing.JSpinner;
  17. import javax.swing.SpinnerNumberModel;
  18. import javax.swing.SwingConstants;
  19. import net.miginfocom.swing.MigLayout;
  20. /**
  21. *
  22. * @author Chris
  23. */
  24. public class BettingPanel extends JPanel implements ActionListener {
  25. private static final long serialVersionUID = 1;
  26. private final JPanel panel1 = new JPanel();
  27. private final JPanel panel2 = new JPanel();
  28. private final JPanel panel3 = new JPanel();
  29. private final List<JRadioButton> types = new ArrayList<JRadioButton>();
  30. private final JSpinner ante = new JSpinner(new SpinnerNumberModel(0, 0, 100000, 10));
  31. private final JSpinner bringin = new JSpinner(new SpinnerNumberModel(0, 0, 100000, 10));
  32. private final JSpinner bigblind = new JSpinner(new SpinnerNumberModel(100, 0, 100000, 10));
  33. private final JSpinner smallblind = new JSpinner(new SpinnerNumberModel(50, 0, 100000, 10));
  34. private final JSpinner raises = new JSpinner(new SpinnerNumberModel(4, -1, 100, 1));
  35. public BettingPanel() {
  36. panel1.setBorder(BorderFactory.createTitledBorder(" Limit type "));
  37. panel1.setLayout(new MigLayout("fillx"));
  38. JRadioButton limitType;
  39. limitType = new JRadioButton("Fixed limit", false);
  40. limitType.addActionListener(this);
  41. limitType.setEnabled(false);
  42. types.add(limitType);
  43. panel1.add(limitType, "wrap, growx");
  44. limitType = new JRadioButton("No limit", true);
  45. limitType.addActionListener(this);
  46. limitType.setEnabled(false);
  47. types.add(limitType);
  48. panel1.add(limitType, "wrap, growx");
  49. limitType = new JRadioButton("Pot limit", false);
  50. limitType.addActionListener(this);
  51. limitType.setEnabled(false);
  52. types.add(limitType);
  53. panel1.add(limitType, "wrap, growx");
  54. limitType = new JRadioButton("Spread limit", false);
  55. limitType.addActionListener(this);
  56. limitType.setEnabled(false);
  57. types.add(limitType);
  58. panel1.add(limitType, "wrap, growx");
  59. panel2.setBorder(BorderFactory.createTitledBorder(" Options "));
  60. panel2.setLayout(new MigLayout("fillx"));
  61. panel2.add(new JLabel("Max raises:", SwingConstants.RIGHT), "growx");
  62. panel2.add(raises, "wrap, growx");
  63. panel3.setBorder(BorderFactory.createTitledBorder(" Forced bets "));
  64. panel3.setLayout(new MigLayout("fillx"));
  65. panel3.add(new JLabel("Big blind:", SwingConstants.RIGHT), "growx");
  66. panel3.add(bigblind, "wrap, growx");
  67. smallblind.setEnabled(false);
  68. panel3.add(new JLabel("Small blind:", SwingConstants.RIGHT), "growx");
  69. panel3.add(smallblind, "wrap, growx");
  70. panel3.add(new JLabel("Ante:", SwingConstants.RIGHT), "growx");
  71. panel3.add(ante, "wrap, growx");
  72. bringin.setEnabled(false);
  73. panel3.add(new JLabel("Bring-in:", SwingConstants.RIGHT), "growx");
  74. panel3.add(bringin, "wrap, growx");
  75. setLayout(new MigLayout("gap 10 10, fill"));
  76. add(panel1, "grow, width 50%");
  77. add(panel2, "grow, width 50%, spany 2, wrap");
  78. add(panel3, "grow, width 50%");
  79. }
  80. public int getAnte() {
  81. return (Integer) ante.getValue();
  82. }
  83. public int getBigBlind() {
  84. return (Integer) bigblind.getValue();
  85. }
  86. public int getRaises() {
  87. return (Integer) raises.getValue();
  88. }
  89. public void actionPerformed(ActionEvent e) {
  90. for (JRadioButton button : types) {
  91. if (button.equals(e.getSource())) {
  92. button.setSelected(true);
  93. } else {
  94. button.setSelected(false);
  95. }
  96. }
  97. }
  98. }