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.

ConfigScreen.java 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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.games.GameInfo;
  11. import com.md87.cardgame.interfaces.Game;
  12. import java.awt.BorderLayout;
  13. import java.awt.Image;
  14. import java.awt.event.ActionEvent;
  15. import java.awt.event.ActionListener;
  16. import java.io.IOException;
  17. import javax.imageio.ImageIO;
  18. import javax.swing.BorderFactory;
  19. import javax.swing.ImageIcon;
  20. import javax.swing.JButton;
  21. import javax.swing.JDialog;
  22. import javax.swing.JPanel;
  23. import javax.swing.JTabbedPane;
  24. import javax.swing.WindowConstants;
  25. /**
  26. *
  27. * @author Chris
  28. */
  29. public class ConfigScreen extends JDialog {
  30. private static final long serialVersionUID = 1;
  31. private final JTabbedPane tabbedPane = new JTabbedPane();
  32. private final PlayerPanel playerPanel = new PlayerPanel();
  33. private final GamePanel gamePanel = new GamePanel(this);
  34. private final BettingPanel bettingPanel = new BettingPanel();
  35. private final JPanel savePanel = new JPanel();
  36. private GameInfo game;
  37. public ConfigScreen() {
  38. super();
  39. Image gameIcon = null;
  40. Image playerIcon = null;
  41. Image moneyIcon = null;
  42. Image saveIcon = null;
  43. try {
  44. gameIcon = ImageIO.read(getClass().getResource("/com/md87/cardgame/res/icon.png"));
  45. playerIcon = ImageIO.read(getClass().getResource("/com/md87/cardgame/res/user.png"));
  46. moneyIcon = ImageIO.read(getClass().getResource("/com/md87/cardgame/res/money.png"));
  47. saveIcon = ImageIO.read(getClass().getResource("/com/md87/cardgame/res/save.png"));
  48. } catch (IOException ex) {
  49. System.err.println("Unable to load icons");
  50. }
  51. setIconImage(gameIcon);
  52. setTitle("JaPoker: Game configuration");
  53. tabbedPane.addTab("Game type", new ImageIcon(gameIcon), gamePanel);
  54. tabbedPane.addTab("Players", new ImageIcon(playerIcon), playerPanel);
  55. tabbedPane.addTab("Betting", new ImageIcon(moneyIcon), bettingPanel);
  56. tabbedPane.addTab("Save/Load", new ImageIcon(saveIcon), savePanel);
  57. tabbedPane.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
  58. setLayout(new BorderLayout());
  59. add(tabbedPane, BorderLayout.NORTH);
  60. final JButton netButton = new JButton("Join Network Game");
  61. netButton.setEnabled(false);
  62. JPanel buttonPanel = new JPanel();
  63. buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 20, 20, 20));
  64. buttonPanel.add(netButton);
  65. add(buttonPanel, BorderLayout.WEST);
  66. final JButton startButton = new JButton("Start Game");
  67. buttonPanel = new JPanel();
  68. buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 20, 20, 20));
  69. buttonPanel.add(startButton);
  70. add(buttonPanel, BorderLayout.EAST);
  71. startButton.addActionListener(new ActionListener() {
  72. @Override
  73. public void actionPerformed(ActionEvent e) {
  74. startGame();
  75. }
  76. });
  77. pack();
  78. setVisible(true);
  79. setResizable(false);
  80. setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  81. }
  82. public void setGame(final GameInfo newGame) {
  83. game = newGame;
  84. playerPanel.setMaxPlayers(game.getNumPlayers());
  85. }
  86. public GameInfo getGame() {
  87. return game;
  88. }
  89. private void startGame() {
  90. final Game myGame = game.getGame(playerPanel.getNumPlayers(),
  91. bettingPanel.getBigBlind(), bettingPanel.getAnte(),
  92. bettingPanel.getRaises());
  93. final GameWindow window = new GameWindow(myGame);
  94. for (Player player : playerPanel.getPlayers(myGame, window)) {
  95. myGame.addPlayer(player);
  96. }
  97. myGame.startTournament();
  98. dispose();
  99. }
  100. }