/** * User Interface demonstration of Video Poker ROI Calculator * @author Dr. Jody Paul * @version CS3 Fall 2005 */ public class VPCalcUIDemo extends javax.swing.JApplet { /** Construct UI Demo and Pre-calculate. */ public VPCalcUIDemo() { initComponents(); BetUnitsComboBox.insertItemAt(new String("1"),0); BetUnitsComboBox.setSelectedIndex(0); BetUnitsTextField.setVisible(false); PreCalculate(); } /** This method is called from within the constructor to * initialize the form. */ private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); BetUnitsTextField = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); ExpectedReturnValueLabel = new javax.swing.JLabel(); RoyalFlushTextField = new javax.swing.JTextField(); FourOfAKindTextField = new javax.swing.JTextField(); StraightFlushTextField = new javax.swing.JTextField(); ThreeOfAKindTextField = new javax.swing.JTextField(); FullHouseTextField = new javax.swing.JTextField(); FlushTextField = new javax.swing.JTextField(); StraightTextField = new javax.swing.JTextField(); TwoPairTextField = new javax.swing.JTextField(); JacksOrBetterTextField = new javax.swing.JTextField(); BetUnitsComboBox = new javax.swing.JComboBox(); RememberButton = new javax.swing.JButton(); getContentPane().setLayout(null); jLabel1.setText("Video Poker Expected Value Calculator"); getContentPane().add(jLabel1); jLabel1.setBounds(20, 17, 270, 20); jLabel2.setText("Bet Units"); getContentPane().add(jLabel2); jLabel2.setBounds(20, 60, 60, 14); BetUnitsTextField.setText("1"); BetUnitsTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { PreCalculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { PreCalculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { PreCalculate(evt); } }); getContentPane().add(BetUnitsTextField); BetUnitsTextField.setBounds(120, 60, 30, 18); jLabel3.setText("Royal Flush"); getContentPane().add(jLabel3); jLabel3.setBounds(20, 100, 100, 20); jLabel4.setText("Straight Flush"); getContentPane().add(jLabel4); jLabel4.setBounds(20, 120, 100, 20); jLabel5.setText("Four of a Kind"); getContentPane().add(jLabel5); jLabel5.setBounds(20, 140, 100, 20); jLabel6.setText("Full House"); getContentPane().add(jLabel6); jLabel6.setBounds(20, 160, 100, 20); jLabel7.setText("Flush"); getContentPane().add(jLabel7); jLabel7.setBounds(20, 180, 100, 20); jLabel8.setText("Straight"); getContentPane().add(jLabel8); jLabel8.setBounds(20, 200, 100, 20); jLabel9.setText("Three of a Kind"); getContentPane().add(jLabel9); jLabel9.setBounds(20, 220, 100, 20); jLabel10.setText("Two Pair"); getContentPane().add(jLabel10); jLabel10.setBounds(20, 240, 100, 20); jLabel11.setText("Jacks or Better"); getContentPane().add(jLabel11); jLabel11.setBounds(20, 260, 100, 20); jLabel12.setText("Expected Return"); getContentPane().add(jLabel12); jLabel12.setBounds(20, 310, 120, 20); getContentPane().add(ExpectedReturnValueLabel); ExpectedReturnValueLabel.setBounds(130, 310, 200, 20); RoyalFlushTextField.setText("800"); RoyalFlushTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(RoyalFlushTextField); RoyalFlushTextField.setBounds(120, 100, 60, 18); FourOfAKindTextField.setText("25"); FourOfAKindTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(FourOfAKindTextField); FourOfAKindTextField.setBounds(120, 140, 60, 18); StraightFlushTextField.setText("50"); StraightFlushTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(StraightFlushTextField); StraightFlushTextField.setBounds(120, 120, 60, 18); ThreeOfAKindTextField.setText("3"); ThreeOfAKindTextField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ThreeOfAKindTextFieldActionPerformed(evt); } }); ThreeOfAKindTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(ThreeOfAKindTextField); ThreeOfAKindTextField.setBounds(120, 220, 60, 18); FullHouseTextField.setText("9"); FullHouseTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(FullHouseTextField); FullHouseTextField.setBounds(120, 160, 60, 18); FlushTextField.setText("6"); FlushTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(FlushTextField); FlushTextField.setBounds(120, 180, 60, 18); StraightTextField.setText("4"); StraightTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(StraightTextField); StraightTextField.setBounds(120, 200, 60, 18); TwoPairTextField.setText("2"); TwoPairTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(TwoPairTextField); TwoPairTextField.setBounds(120, 240, 60, 18); JacksOrBetterTextField.setText("1"); JacksOrBetterTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { Calculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { Calculate(evt); } }); getContentPane().add(JacksOrBetterTextField); JacksOrBetterTextField.setBounds(120, 260, 60, 18); BetUnitsComboBox.setEditable(true); BetUnitsComboBox.setActionCommand(""); BetUnitsComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BetUnitsComboBoxActionPerformed(evt); } }); BetUnitsComboBox.addInputMethodListener(new java.awt.event.InputMethodListener() { public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { BetUnitsComboBoxInputMethodTextChanged(evt); } public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { } }); BetUnitsComboBox.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { PreCalculate(evt); } public void keyPressed(java.awt.event.KeyEvent evt) { PreCalculate(evt); } public void keyReleased(java.awt.event.KeyEvent evt) { PreCalculate(evt); } }); getContentPane().add(BetUnitsComboBox); BetUnitsComboBox.setBounds(120, 60, 60, 20); RememberButton.setText("Fill Table"); RememberButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { RememberButtonActionPerformed(evt); } }); getContentPane().add(RememberButton); RememberButton.setBounds(200, 60, 85, 20); } private void BetUnitsComboBoxActionPerformed(java.awt.event.ActionEvent evt) { } private void BetUnitsComboBoxInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { PreCalculate(); } private void RememberButtonActionPerformed(java.awt.event.ActionEvent evt) { Object item = BetUnitsComboBox.getSelectedItem(); if (BetUnitsComboBox.getSelectedIndex() > -1) { BetUnitsComboBox.removeItemAt(BetUnitsComboBox.getSelectedIndex()); } else if (BetUnitsComboBox.getItemCount() > 4) { BetUnitsComboBox.removeItemAt(4); } BetUnitsComboBox.insertItemAt(item,0); BetUnitsComboBox.setSelectedIndex(0); PreCalculate(); } private void PreCalculate(java.awt.event.KeyEvent evt) { PreCalculate(); } private void ThreeOfAKindTextFieldActionPerformed(java.awt.event.ActionEvent evt) { } private void Calculate(java.awt.event.KeyEvent evt) { Calculate(); } private void PreCalculate() { int betv; try { betv = Integer.parseInt(BetUnitsComboBox.getSelectedItem().toString()); } catch (Exception e) { betv = 0; } if (betv == 0) { betv = 1; } RoyalFlushTextField.setText(Integer.toString(250*betv)); StraightFlushTextField.setText(Integer.toString(50*betv)); FourOfAKindTextField.setText(Integer.toString(25*betv)); FullHouseTextField.setText(Integer.toString(9*betv)); FlushTextField.setText(Integer.toString(6*betv)); StraightTextField.setText(Integer.toString(4*betv)); ThreeOfAKindTextField.setText(Integer.toString(3*betv)); TwoPairTextField.setText(Integer.toString(2*betv)); JacksOrBetterTextField.setText(Integer.toString(1*betv)); Calculate(); } private void Calculate() { // bet units int betv; try { betv = Integer.parseInt(BetUnitsComboBox.getSelectedItem().toString()); } catch (Exception e) { betv = 0; } if (betv == 0) { betv = 1; } // royal flush int rfv; try { rfv = Integer.parseInt(RoyalFlushTextField.getText()); } catch (Exception e) { rfv = 0; } // straight flush int sfv; try { sfv = Integer.parseInt(StraightFlushTextField.getText()); } catch (Exception e) { sfv = 0; } // four of a kind int foakv; try { foakv = Integer.parseInt(FourOfAKindTextField.getText()); } catch (Exception e) { foakv = 0; } // full house int fhv; try { fhv = Integer.parseInt(FullHouseTextField.getText()); } catch (Exception e) { fhv = 0; } // flush int fv; try { fv = Integer.parseInt(FlushTextField.getText()); } catch (Exception e) { fv = 0; } // straight int sv; try { sv = Integer.parseInt(StraightTextField.getText()); } catch (Exception e) { sv = 0; } // three of a kind int toakv; try { toakv = Integer.parseInt(ThreeOfAKindTextField.getText()); } catch (Exception e) { toakv = 0; } // two pair int tpv; try { tpv = Integer.parseInt(TwoPairTextField.getText()); } catch (Exception e) { tpv = 0; } // jacks or better int jobv; try { jobv = Integer.parseInt(JacksOrBetterTextField.getText()); } catch (Exception e) { jobv = 0; } double er = (rfv/betv)*0.00249; er += (sfv/betv)*0.01053; er += (foakv/betv)*0.23640; er += (fhv/betv)*1.15200; er += (fv/betv)*1.08000; er += (sv/betv)*1.13500; er += (toakv/betv)*7.44900; er += (tpv/betv)*12.94000; er += (jobv/betv)*21.45000; ExpectedReturnValueLabel.setText(Double.toString(er/100)); } private javax.swing.JComboBox BetUnitsComboBox; private javax.swing.JTextField BetUnitsTextField; private javax.swing.JLabel ExpectedReturnValueLabel; private javax.swing.JTextField FlushTextField; private javax.swing.JTextField FourOfAKindTextField; private javax.swing.JTextField FullHouseTextField; private javax.swing.JTextField JacksOrBetterTextField; private javax.swing.JButton RememberButton; private javax.swing.JTextField RoyalFlushTextField; private javax.swing.JTextField StraightFlushTextField; private javax.swing.JTextField StraightTextField; private javax.swing.JTextField ThreeOfAKindTextField; private javax.swing.JTextField TwoPairTextField; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; }