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.

RaiseWindow.java 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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;
  8. import com.md87.cardgame.controllers.HumanPlayer;
  9. import java.awt.BorderLayout;
  10. import java.awt.Dimension;
  11. import java.awt.event.ActionEvent;
  12. import java.awt.event.ActionListener;
  13. import java.awt.event.KeyEvent;
  14. import java.awt.event.KeyListener;
  15. import javax.swing.JButton;
  16. import javax.swing.JDialog;
  17. import javax.swing.JLabel;
  18. import javax.swing.JSpinner;
  19. import javax.swing.SpinnerNumberModel;
  20. import javax.swing.border.EmptyBorder;
  21. /**
  22. *
  23. * @author Chris
  24. */
  25. public class RaiseWindow extends JDialog implements ActionListener, KeyListener {
  26. private static final long serialVersionUID = 1;
  27. private final HumanPlayer player;
  28. private JSpinner raise;
  29. public RaiseWindow(final HumanPlayer player, final int minimum) {
  30. super();
  31. this.player = player;
  32. setTitle("Enter amount to raise");
  33. setLayout(new BorderLayout(5, 5));
  34. JLabel label = new JLabel("Minimum: " + minimum + "; Maximum: " + player.getPlayer().getCash());
  35. label.setPreferredSize(new Dimension(300, 20));
  36. label.setBorder(new EmptyBorder(5, 5, 5, 5));
  37. add(label, BorderLayout.NORTH);
  38. raise = new JSpinner(new SpinnerNumberModel(minimum, minimum, player.getPlayer().getCash(), 10));
  39. raise.setPreferredSize(new Dimension(300, 20));
  40. raise.addKeyListener(this);
  41. add(raise);
  42. JButton button = new JButton("Raise");
  43. button.addActionListener(this);
  44. button.setPreferredSize(new Dimension(300, 25));
  45. button.setDefaultCapable(true);
  46. add(button, BorderLayout.SOUTH);
  47. getRootPane().setDefaultButton(button);
  48. pack();
  49. setLocationRelativeTo(player.getWindow());
  50. setVisible(true);
  51. setResizable(false);
  52. addKeyListener(this);
  53. }
  54. public void actionPerformed(ActionEvent e) {
  55. synchronized(player) {
  56. player.bet = (Integer) raise.getValue();
  57. player.notify();
  58. }
  59. this.dispose();
  60. }
  61. public void keyTyped(KeyEvent e) {
  62. // Do nothing
  63. }
  64. public void keyPressed(KeyEvent e) {
  65. if (e.getKeyCode() == KeyEvent.VK_ENTER) {
  66. synchronized(player) {
  67. player.bet = (Integer) raise.getValue();
  68. player.notify();
  69. }
  70. this.dispose();
  71. }
  72. }
  73. public void keyReleased(KeyEvent e) {
  74. // Do nothing
  75. }
  76. }