How display selected items from combobox java? - java

Here's my code that I have so far.
import java.util.*;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.Action;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import java.awt.event.*;
import java.awt.Component;
public class MAIN {
public static void main(String[] args) {
String grade = null, sub = null;
int x = 0;
ALevel[] array = new ALevel[3];
for (x = 0; x < 3; x++) {
JFrame frame = new JFrame("COURSE CHECKER");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setLocation(430, 100);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
frame.add(panel);
JLabel lbl = new JLabel("Select your subject(s):");
lbl.setAlignmentX(Component.CENTER_ALIGNMENT);
//lbl.setVisible(true);
panel.add(lbl);
//define items in a String array
String[] choices = { "MATHEMATICS", "FURTHER MATHEMATICS", "ACCOUNTING", "ECONOMICS",
"MANAGEMENT OF BUSINESS", "COMPUTER STUDIES", "PHYSICS", "CHEMISTRY",
"BIOLOGY", "DESIGN & TECHNOLOGY", "GEOGRAPHY"};
//create combobox/dropdown with the fixed array
final JComboBox<String> cb = new JComboBox<String>(choices);
cb.setMaximumSize(cb.getPreferredSize());
cb.setAlignmentX(Component.CENTER_ALIGNMENT);
//cb.setVisible(true);
panel.add(cb);
frame.setVisible(true);
array[x] = new ALevel(grade, sub);
array[x].gradecheck(sub, array[x].getaGrade());
}
cb.addActionListener(new ActionListener(){
public void actionPerformed(Action e){
String data = "Subject Selected: " + cb.getItemAt(cb.getSelectedIndex());
lbl.setText(data);
}
};
JLabel lbl1 = new JLabel("Select your grades");
lbl1.setAlignmentX(Component.CENTER_ALIGNMENT);
//lbl.setVisible(true);
panel.add(lbl1);
//define items in a String array
String[] choices1 = { "A", "B", "C", "D", "E"};
//create combobox/dropdown with the fixed array
final JComboBox<String> cb1 = new JComboBox<String>(choices1);
cb1.setMaximumSize(cb1.getPreferredSize());
cb1.setAlignmentX(Component.CENTER_ALIGNMENT);
//cb.setVisible(true);
panel.add(cb1);
JButton btn1 = new JButton("OK");
btn1.setAlignmentX(Component.CENTER_ALIGNMENT);
panel.add(btn1);
frame.setVisible(true);
for (x = 0; x < 3; x++) {
System.out.println("\nSubject: " + array[x].getaSub() + "\nGrade:" + array[x].getaGrade());
}
System.out.println("\nPoint: " + array[0].getaScore());
//
Scanner input = new Scanner(System.in);
String grade = null, sub = null;
int x = 0;
ALevel[] array = new ALevel[3];
for (x = 0; x < 3; x++) {
System.out.print("Enter subject: ");
sub = input.nextLine();
System.out.print("Enter grade: ");
grade = input.nextLine();
array[x] = new ALevel(grade, sub);
array[x].gradecheck(sub, array[x].getaGrade());
}
for (x = 0; x < 3; x++) {
System.out.println("\nSubject: " + array[x].getaSub() + "\nGrade:" + array[x].getaGrade());
}
System.out.println("\nPoint: " + array[0].getaScore());
System.out.println("You are eligible for: ");
for (x = 0; x < 3; x++) {
if (array[x].getSubjects() == 3) {
if (array[x].isMathcheck() == true && array[x].getSubscoreE() >= 3 && array[x].getaScore() >= 200) {
array[x].SCI();
}
if (array[x].getSubscoreE() >= 3 && array[x].getaScore() >= 200) {
array[x].SOB();
}
if (array[x].isMathcheck() == true && array[x].getSubscoreS() >= 2 && array[x].getaScore() >= 240) {
array[x].CEPA();
}
if (array[x].isMathcheck() == true && array[x].isPhyscheck() == true && array[x].getSubscoreS() >= 2
&& array[x].getaScore() >= 220) {
array[x].E3PA();
}
if (array[x].isMathcheck() == true && array[x].isPhyscheck() == true && array[x].isChemcheck() == true
&& array[x].getaScore() >= 240) {
array[x].PCEPA();
}
if (array[x].isMathcheck() == true && array[x].isPhyscheck() == true && array[x].getSubscoreS() >= 2
&& array[x].getaScore() >= 240) {
array[x].MEPA();
}
}
if (array[x].getSubjects() == 2) {
if (array[x].isMathcheck() == true && array[x].getSubscoreE() >= 2 && array[x].getaScore() >= 180) {
array[x].SCI();
}
if (array[x].getSubscoreE() >= 2 && array[x].getaScore() >= 180) {
array[x].SOB();
}
if (array[x].isMathcheck() == true && array[x].isPhyscheck() == true && array[x].getaScore() >= 180) {
array[x].E3PA();
}
if (array[x].isMathcheck() == true && array[x].isPhyscheck() == true && array[x].getaScore() >= 180) {
array[x].MEPA();
}
}
if (array[x].getaScore() < 180) {
System.out.print("None");
}
System.exit(0);
}//
}
}
the codings work well without the combobox and the data are dsiplayed in the console tab.
I want to make it easier by choosing data from combobox rather than enter input.
So, how do i display the selected item from the combobox?

You need to get the "selected item" from the combobox.
Then you can update your label, text area, or whatever else with the data it grabbed from your combobox.
JComboBox cb = (JComboBox)e.getSource();
String myName = (String)cb.getSelectedItem();
updateLabel(myName);
Note the cb.getSelectedItem(). That's what's actually grabbing the data from the combobox.
And here's a good resource with some more info about using Java comboboxes: https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html

Related

Why wont my JOptionPane error message pop up?

I made a GUI program where it counts certain elements of whatever is entered in the main text field. If the text field is empty, a message should pop up saying that the user should enter text in the text field. I made an if statement if tfMain == null, a JOptionPane message should pop-up, but for some reason it won't. Any tips on why it doesn't pop up?
here is my code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class LabExcer9 extends WindowAdapter implements ActionListener
{
//Container
private Frame f;
private Panel p1,p2,p3;
//Component
private Button bReadAndComp, bClear;
private TextField tfMain,tf1,tf2,tf3,tf4,tf5,tf6;
private Label l1,l2,l3,l4,l5,l6;
public LabExcer9()
{
f = new Frame("Character Counter of Miguel Martin");
p1 = new Panel();
p2 = new Panel();
p3 = new Panel();
bReadAndComp = new Button("Read and Compute");
bClear = new Button("Clear ALL Values");
tfMain = new TextField(null);
tf1 = new TextField("0");
tf2 = new TextField("0");
tf3 = new TextField("0");
tf4 = new TextField("0");
tf5 = new TextField("0");
tf6 = new TextField("0");
l1 = new Label("Number of Words ");
l2 = new Label("Number of Characters ");
l3 = new Label("Number of Vowels ");
l4 = new Label("Number of Consonants ");
l5 = new Label("Number of Digits ");
l6 = new Label("Number of Symbols and Spaces ");
}
public void assembleGUI()
{
p1.setLayout(new GridLayout(1,1));
p1.setPreferredSize(new Dimension(200, 200));
p1.add(tfMain);
p2.setLayout(new GridLayout(6,2));
p2.add(l1);
p2.add(tf1);
p2.add(l2);
p2.add(tf2);
p2.add(l3);
p2.add(tf3);
p2.add(l4);
p2.add(tf4);
p2.add(l5);
p2.add(tf5);
p2.add(l6);
p2.add(tf6);
p3.setLayout(new GridLayout(1,2));
p3.add(bReadAndComp);
p3.add(bClear);
f.add(p1,BorderLayout.NORTH);
f.add(p2,BorderLayout.CENTER);
f.add(p3,BorderLayout.SOUTH);
f.pack();
f.addWindowListener(this);
f.setVisible(true);
//registers
bReadAndComp.addActionListener(this);
bClear.addActionListener(this);
}
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
public void actionPerformed(ActionEvent ae)
{
Object source = ae.getSource();
//gets main text
String textString = tfMain.getText();
//puts words into array
int vowels = 0, consonants = 0, digits = 0, symbolsAndSpaces = 0;
int characters = textString.length();
if(tfMain.getText() == "" || tfMain.getText() == null )
{
if(source == bReadAndComp)
JOptionPane.showMessageDialog(null, "Please Enter Text!");
}
else if(tfMain.getText() != null && tfMain.getText() != "")
{
if(source == bReadAndComp)
{
for(int i = 0;i<textString.length();i++)
{
if(Character.isDigit(textString.charAt(i)))
digits++;
if(Character.isLetterOrDigit(textString.charAt(i)) == false)
symbolsAndSpaces++;
if(isVowel(textString.charAt(i)) == true)
vowels++;
else if(Character.isDigit(textString.charAt(i)) == false && isVowel(textString.charAt(i)) == false && textString.charAt(i) != ' ' && Character.isLetter(textString.charAt(i)) == true)
consonants++;
}
tf1.setText(""+textString.split(" ").length);
tf2.setText(""+characters);
tf3.setText(""+vowels);
tf4.setText(""+consonants);
tf5.setText(""+digits);
tf6.setText(""+symbolsAndSpaces);
//System.out.println(textStringArray[0]+"wat");
//JOptionPane.showMessageDialog(null, "Please Enter Text!");
}
else if (source == bClear)
{
tf1.setText("0");
tf2.setText("0");
tf3.setText("0");
tf4.setText("0");
tf5.setText("0");
tf6.setText("0");
tfMain.setText(null);
}
}
}
public boolean isVowel(char c)
{
if (c == 'a' || c == 'A' ||c== 'e' ||c == 'E' ||c == 'i' ||c == 'I' ||c == 'o' ||c == 'O' ||c == 'u' ||c == 'U')
return true;
else
return false;
}
public static void main(String args [])
{
LabExcer9 GUI = new LabExcer9();
GUI.assembleGUI();
}
}
To compare string please use equals or equalsIgnoreCase.
Replace your
if(tfMain.getText() == "" || tfMain.getText() == null )
statement with the following:
if("".equals(tfMain.getText())){
}

Swing frame doesnt hold or stay after clicking jbutton

I have 2 text areas with a button in between them in a frame in swing and I am using netbeans.
Clicking the button picks up an sql query from textArea1, using getText().
The input is processed (i.e. checked the spellings of the keywords after splitting the query) with SubmitData(). Inside that method, it only uses setText() to set the output to textArea2.
My Problem Is:
The frame just doesn't stay or hold after I press the button.
Here is my code:
void createUI() throws Exception
{
JFrame frame = new JFrame("JDBC All in One");
// Layout of Main Window
Container c = frame.getContentPane();
c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS));
textArea1 = new JTextArea(10, 50);
textArea1.setBounds(10, 10, 30, 30);
btnInsert = new JButton("Submit");
btnInsert.setBounds(10, 10, 10, 10);
btnInsert.addActionListener(this);
textArea2 = new JTextArea(10, 50);
textArea2.setBounds(10, 10, 30, 30);
JPanel pnlInput1 = new JPanel();
JPanel pnlInput2 = new JPanel();
JPanel pnlInput3 = new JPanel();
pnlInput1.add(textArea1);
pnlInput3.add(btnInsert);
pnlInput2.add(textArea2);
frame.add(pnlInput1);
frame.add(pnlInput3);
frame.add(pnlInput2);
frame.setSize(400, 500);
frame.pack();
frame.setVisible(true);
}
public void actionPerformed(ActionEvent evt)
{
String cmd = evt.getActionCommand();
if (cmd.equals("Submit")) {
try {
SubmitData();
} catch (Exception e) {}
}
}
public static void SubmitData() throws Exception {
s1 = textArea1.getText();
String[] s2 = s1.split("\\s+");
for (int i = 0; i < s2.length; i++) {
if (s2[i] .equals("elect")|| s2[i] .equals("selct") || s2[i].equals("slect" )|| s2[i].equals("selec")|| s2[i].equals("seect")
{
textArea2.setText("use 'select' instead of " + s2[i]);
System.exit(0);
}
if (s2[i] == "updat" || s2[i] == "updae" || s2[i] == "updte" || s2[i] == "upate") {
textArea2.setText("use 'update' instead of " + s2[i]);
System.exit(0);
}
if (s2[i] == "delet" || s2[i] == "delte" || s2[i] == "elete" || s2[i] == "dlete") {
textArea2.setText("use 'delete' instead of " + s2[i]);
System.exit(0);
}
if (s2[i] == "fro" || s2[i] == "frm" || s2[i] == "fom") {
textArea2.setText("use 'from' instead of " + s2[i]);
System.exit(0);
}
}
}
Edited-i've changed "==" fro string comparision with .equals() but the problem doesnt seem to go away.
System.exit(0);terminates your JVM. Remove it if you want to keep your frame.
Edit for second question :
After your first if, replace your if by else if in order that the others if don't execute when a condition is true.
for (int i = 0; i < s2.length; i++) {
if (s2[i] .equals("elect")|| s2[i] .equals("selct") || s2[i].equals("slect" )|| s2[i].equals("selec")|| s2[i].equals("seect")
{
textArea2.setText("use 'select' instead of " + s2[i]);
}
else if (s2[i] == "updat" || s2[i] == "updae" || s2[i] == "updte" || s2[i] == "upate") {
textArea2.setText("use 'update' instead of " + s2[i]);
}
else if (s2[i] == "delet" || s2[i] == "delte" || s2[i] == "elete" || s2[i] == "dlete") {
textArea2.setText("use 'delete' instead of " + s2[i]);
}
else if (s2[i] == "fro" || s2[i] == "frm" || s2[i] == "fom") {
textArea2.setText("use 'from' instead of " + s2[i]);
}
}

Tic Tac Toe game in Java

Ok guys...I'm stumped again.
I managed to get the game working. However, now I'm down to the point of trying to code the win conditions. I'm thinking of using a boolean array for each of the buttons, but can't figure out how to cross reference the buttons[] to the gameSquares[] to set the elements of gameSquares[] to true/false flags.
Any pointers? (Code is copied below).
** A few other interesting bugs I feel worth mentioning:
1) Start and Reset don't seem to work correctly
2) When the computer tries multiple attempts in invalid squares, the squares seem to jump or dance around. It's really weird.
package tictactoegame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
class TicTacToeBoard extends JFrame implements ActionListener
{
JButton[] buttons = new JButton[10];
boolean player1 = false, player2 = false;
boolean[] gameSquares = {false, false, false,
false, false, false,
false, false, false};
boolean startPlayer = false;
int turnCount = 0;
public TicTacToeBoard()
{
JFrame gameWindow = new JFrame();
gameWindow.setDefaultCloseOperation(EXIT_ON_CLOSE);
gameWindow.setSize(300,400);
gameWindow.setVisible(true);
JPanel gamePanel = new JPanel();
gamePanel.setSize(300,400);
GridLayout grid = new GridLayout(4,3);
gamePanel.setLayout(grid);
for(int i = 0; i < 9; i++)
{
buttons[i] = new JButton("");
buttons[i].addActionListener(this);
gamePanel.add(buttons[i]);
}
JButton startButton = new JButton("Start");
startButton.addActionListener(this);
JButton resetButton = new JButton("Reset");
resetButton.addActionListener(this);
JButton helpButton = new JButton("Help");
helpButton.addActionListener(this);
gamePanel.add(startButton);
gamePanel.add(helpButton);
gamePanel.add(resetButton);
gameWindow.add(gamePanel);
gameWindow.pack();
while (turnCount < 9)
{
gamePlay();
}
}
public void gamePlay()
{
while(!startPlayer)
{
int random = randomGenerator();
if (random%2 == 0)
{
player1 = true;
JOptionPane.showMessageDialog(null, "Player is first.");
startPlayer = true;
}
else if (random%2 == 1)
{
player2 = true;
JOptionPane.showMessageDialog(null, "Computer is first.");
startPlayer = true;
}
}
if (player2)
{
int index;
Random randomGenerator = new Random();
index = randomGenerator.nextInt(9);
buttons[index].doClick();
player2 = false;
player1 = true;
}
}
public int randomGenerator()
{
int randomNum;
Random randomGenerator = new Random();
randomNum = randomGenerator.nextInt(100);
return randomNum;
}
#Override
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
if(source instanceof JButton)
{
JButton button = (JButton) source;
if (button.getText() == "Start")
{
startPlayer = false;
player1 = false;
player2 = false;
gamePlay();
}
else if (button.getText() == "Reset")
{
for(int i = 0; i < 9; i++)
{
buttons[i].setText("");
}
startPlayer = false;
player1 = false;
player2 = false;
gamePlay();
}
else if (button.getText() == "Help")
{
JOptionPane.showMessageDialog(null, "Help:\n\n" +
"How to play-\n" +
"Select an empty square. The square will be filled with"
+ "with your symbole, either X or O.\n" +
"The game is won when either player gets three X's or"
+ "O's in a row horizontally,\n vertically, or diagonally.");
}
if (button.getText() == "" && player1)
{
button.setText("X");
turnCount += 1;
player1 = false;
player2 = true;
}
else if (button.getText() == "" && player2)
{
button.setText("O");
turnCount+=1;
player2 = false;
player1 = true;
}
else if (button.getText() == "X" || button.getText() == "O")
{
if(player2 == true)
{
gamePlay();
}
else
{
JOptionPane.showMessageDialog(null, "Invalid choice. Select"
+ " another square.");
}
}
}
}
}
Check this TicTacToe Full code using the Applets...:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*
<applet code="TicTacToe.class" width="300" height="300">
</applet>
*/
public class TicTacToe extends Applet implements ActionListener {
Button[] btnarray = new Button[9];
private final static String PLAYER1 = "PLAYER1";
private final static String PLAYER2 = "PLAYER2";
private static String CURRENT_PLAYER = null;
Label lbl = new Label();
public void init() {
CURRENT_PLAYER = PLAYER1;
lbl.setText(CURRENT_PLAYER + " Turn!");
setLayout(new BorderLayout());
Panel p = new Panel();
GridLayout gl = new GridLayout(3, 3);
p.setLayout(gl);
setBackground(Color.BLACK);
setForeground(Color.WHITE);
setSize(300, 300);
Font myFont = new Font("TimesRoman", Font.BOLD, 80);
for (int i = 0; i < 9; i++) {
btnarray[i] = new Button(null);
btnarray[i].setActionCommand("" + i);
btnarray[i].addActionListener(this);
btnarray[i].setFont(myFont);
btnarray[i].setBackground(Color.white);
p.add(btnarray[i]);
}
add(BorderLayout.CENTER, p);
add(BorderLayout.NORTH, lbl);
add(BorderLayout.SOUTH, new Label("Player 1 => X , Player 2 => 0"));
}
#Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int index = Integer.parseInt(e.getActionCommand());
btnarray[index].disable();
if (CURRENT_PLAYER == PLAYER1) {
btnarray[index].setLabel("X");
CURRENT_PLAYER = PLAYER2;
} else {
btnarray[index].setLabel("0");
CURRENT_PLAYER = PLAYER1;
}
lbl.setText(CURRENT_PLAYER + " Turn!");
check();
}
void check() {
String[] pattern = new String[8];
pattern[0] = btnarray[0].getLabel() + btnarray[1].getLabel()
+ btnarray[2].getLabel();
pattern[1] = btnarray[3].getLabel() + btnarray[4].getLabel()
+ btnarray[5].getLabel();
pattern[2] = btnarray[6].getLabel() + btnarray[7].getLabel()
+ btnarray[8].getLabel();
pattern[3] = btnarray[0].getLabel() + btnarray[3].getLabel()
+ btnarray[6].getLabel();
pattern[4] = btnarray[1].getLabel() + btnarray[4].getLabel()
+ btnarray[7].getLabel();
pattern[5] = btnarray[2].getLabel() + btnarray[5].getLabel()
+ btnarray[8].getLabel();
pattern[6] = btnarray[0].getLabel() + btnarray[4].getLabel()
+ btnarray[8].getLabel();
pattern[7] = btnarray[2].getLabel() + btnarray[4].getLabel()
+ btnarray[6].getLabel();
int j = 0;
while (j < 8) {
char[] array = pattern[j].toCharArray();
if (array[0] == 'X' && array[1] == 'X' && array[2] == 'X') {
lbl.setText(PLAYER1 + " Wins!");
} else if (array[0] == '0' && array[1] == '0' && array[2] == '0') {
lbl.setText(PLAYER2 + " Wins!");
}
j++;
}
}
}

usage of variables in different classes in Java

I don't understand the int a; in the main that I called st in the Action listener. I want the st to decrease for 1 everytime a cetain button is clicked but it seems to work separetly for each button. I made it so it writes it out on a button each time I press another button to test it and it only works for the first button and then it just stays the same. (I hope I'm making any sense)
Here is my code, Main class:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Start {
public static int a;
public static JButton[][] gumbi = new JButton[15][15];
public static void main(String[] args) {
JFrame okno = new JFrame("Nonogram");
okno.setVisible(true);
okno.setSize(700, 700);
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new BorderLayout());
okno.add(panel);
JPanel polje = new JPanel(new GridLayout(15, 15));
panel.add(polje, BorderLayout.CENTER);
a = 0;
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
if (i < 5 && j < 5) {
gumbi[i][j] = new JButton();
gumbi[i][j].setBackground(Color.GREEN);
// gumbi[i][j].addActionListener(new Listener(gumbi));
polje.add(gumbi[i][j]);
} else if (i < 5 || j < 5) {
gumbi[i][j] = new JButton();
gumbi[i][j].setBackground(Color.YELLOW);
// gumbi[i][j].addActionListener(new Listener(gumbi));
polje.add(gumbi[i][j]);
gumbi[i][j].setEnabled(false);
} else {
if (Math.random() <= 0.6) {
gumbi[i][j] = new JButton();
gumbi[i][j].setBackground(Color.WHITE);
gumbi[i][j].addActionListener(new Listener(gumbi));
gumbi[i][j].setText("3");
polje.add(gumbi[i][j]);
} else {
gumbi[i][j] = new JButton();
gumbi[i][j].setBackground(Color.WHITE);
gumbi[i][j].addActionListener(new Listener(gumbi));
gumbi[i][j].setText("4");
polje.add(gumbi[i][j]);
}
}
if (gumbi[i][j].getText() == "3") {
a += 1;
}
if (i == 14 && j == 14) {
gumbi[i][j].setText("" + a);
}
}
}
}
}
and ActionListener:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class Listener implements ActionListener {
JButton[][] gumbi = Start.gumbi;
int st = Start.a;
public Listener(JButton[][] gumbi) {
this.gumbi = gumbi;
}
public void actionPerformed(ActionEvent e){
JButton gumb = (JButton) e.getSource();
if( gumb.getBackground() == Color.WHITE){
gumb.setBackground(Color.BLACK);
} else if (gumb.getBackground() == Color.BLACK){
gumb.setBackground(Color.WHITE);
}
if( gumb.getBackground() == Color.WHITE && gumb.getText() == "3"){
st -= 1;
} else if (gumb.getBackground() == Color.BLACK && gumb.getText() == "3"){
st += 1;
gumbi[0][0].setText("" + st);
}
}
}
The problem is that you created a copy of the Static Variable(Start.a) to the instance variable (st), which will be individual copy for each instance of action listener.
If you really need to maintain the value at class level , why not manipulate the value directly rather keeping a copy.
if( gumb.getBackground() == Color.WHITE && gumb.getText() == "3"){
Start.a -= 1;
} else if (gumb.getBackground() == Color.BLACK && gumb.getText() == "3"){
Start.a += 1;
gumbi[0][0].setText("" + st);
}
Your line
int st = Start.a;
isn't doing what you think. It's reading the value of a when the instance is created, and copying its value into a new variable st. Changing st won't have any effect on a because you're only changing a copy; and you've got a new copy for each instance that you create.
Try changing Start.a directly, rather than copying it into a new st and changing that.

Java applet buttons are not displayed until i hover the mouse over them

So My problem is that the applet lunches with nothing in it as soon as i hover the mouse
on top of the buttons it displays them and works perfectly afterwards. I think there might be something wrong with paint but i am not sure. I tried several changes but noting seems to work.
Any help will be much appreciated.
-- Rafael
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class poker extends JApplet implements ActionListener, ListSelectionListener {
private DefaultListModel listModel = new DefaultListModel();
JList jList = new JList(listModel);
JButton dealButton = new JButton("Deal");
JButton quitButton = new JButton("Quit");
JButton finishButton = new JButton("finish");
JPanel panel = new JPanel();
JPanel jPanel = new JPanel();
JPanel lPanel = new JPanel();
JLabel label = new JLabel();
JLabel balance = new JLabel();
private String displayDeal = null;
private String displayFinish = null;
private poker.Card deck[];
private int currentCard;
private double money = 0;
private poker.Card hand[];
private boolean nothing;
private boolean pair;
private boolean twoPair;
private boolean threeKind;
private boolean fourKind;
private boolean fullHouse;
private boolean flush;
private boolean straight;
private boolean royalStraight;
private boolean straightFlush;
private boolean RoyalFlush;
String faces[] = {"Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight",
"Nine", "Ten", "Jack", "Queen", "King", "Ace"};
String suits[] = {"Hearts", "Diamonds", "Clubs", "Spades"};
#Override
public void init() {
this.setSize(500, 500);
this.setLayout(new BorderLayout());
jList.addListSelectionListener(this);
jList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
hand = new poker.Card[5];
deck = new poker.Card[52];
currentCard = -1;
for (int i = 0; i < deck.length; i++) {
deck[i] = new poker.Card(faces[i % 13], suits[i / 13]);
}
listModel.setSize(5);
dealButton.addActionListener(this);
finishButton.addActionListener(this);
quitButton.addActionListener(this);
finishButton.setEnabled(false);
panel.add(dealButton);
panel.add(finishButton);
panel.add(quitButton);
panel.add(label);
jPanel.add(jList);
add(balance, BorderLayout.CENTER);
add(panel, BorderLayout.SOUTH);
add(jPanel, BorderLayout.NORTH);
setVisible(true);
}
class Card {
#Override
public String toString() {
return face + " of " + suit + "\n";
}
public String getFace() {
return face;
}
public String getSuit() {
return suit;
}
private String face;
private String suit;
public Card(String s, String s1) {
face = s;
suit = s1;
}
}
#Override
public void valueChanged(ListSelectionEvent event) {
int[] indices = jList.getSelectedIndices();
if (indices.length > 4) {
JOptionPane.showMessageDialog(null, "You may only select four "
+ "cards.");
jList.clearSelection();
}
}
#Override
public void actionPerformed(ActionEvent event) {
poker.Card card = null;
if (event.getSource() == dealButton) {////////////////////////////
finishButton.setEnabled(true);
dealButton.setEnabled(false);
label.setText(null);
shuffle();// reset deck
for (int j = 0; j < 5; j++) {
card = dealCard();
hand[j] = card;
listModel.setElementAt(hand[j], j);
}
if (money < -1000) {
JOptionPane.showMessageDialog(null, "GAME OVER. You have no "
+ "more money. ");
System.exit(0);
}
//evaluate();
label.setText(displayDeal);
displayDeal = null;
} else if (event.getSource() == finishButton) {///////////////////////
dealButton.setEnabled(true);
finishButton.setEnabled(false);
int c = 5; //to get new card from deck
int maxIndex = jList.getMaxSelectionIndex();
for (int l = 0; l <= maxIndex; l++) {
if (jList.isSelectedIndex(l)) {
listModel.removeElementAt(l);
listModel.add(l, deck[c]);
c++;
}
}
jList.revalidate();
jPanel.repaint();
evaluate();
giveMoney();
label.setText(displayFinish);
balance.setHorizontalAlignment(SwingConstants.CENTER);
balance.setText("Money: $" + money );
jList.clearSelection();
displayFinish = null;
} else if (event.getSource() == quitButton) {///////////////////////
label.setText(null);
balance.setHorizontalAlignment(SwingConstants.CENTER);
balance.setText("You have won $" + money + " dollars.");
int confirmed = JOptionPane.showConfirmDialog(null,
"Are you sure you want to exit?", "User Confirmation",
JOptionPane.YES_NO_OPTION);
if (confirmed == JOptionPane.YES_OPTION) {
dealButton.setEnabled(false);
finishButton.setEnabled(false);
quitButton.setEnabled(false);
System.exit(0);
}
}
this.setVisible(true);
this.validate();
}
// giveMoney() keeps track of the money.
public void giveMoney() {
if (nothing) {
money += -20.00;
nothing = false;
}
if (pair) {
money += 50.00;
pair = false;
}
if (twoPair) {
money += 100.00;
twoPair = false;
}
if (threeKind) {
money += 150.00;
threeKind = false;
}
if (straight) {
money += 200.00;
straight = false;
}
if (royalStraight) {
money += 200.00;
royalStraight = false;
}
if (flush) {
money += 250.00;
flush = false;
}
if (fullHouse) {
money += 300;
}
if (fourKind) {
money += 400.00;
fourKind = false;
}
if (straightFlush) {
money += 500.00;
straightFlush = false;
}
if (RoyalFlush) {
money += 1000.00;
RoyalFlush = false;
}
this.validate();
}
// populates deck array
public void shuffle() {
currentCard = -1;
for (int i = 0; i < deck.length; i++) {
int j = (int) (Math.random() * 52D);
poker.Card card = deck[i];
deck[i] = deck[j];
deck[j] = card;
}
this.validate();
}
public poker.Card dealCard() {
if (++currentCard < deck.length) {
return deck[currentCard];
} else {
dealButton.setEnabled(false);
return null;
}
}
public void evaluate() {
int i = 0;
String setOf = null;
nothing = false; pair = false; twoPair = false; threeKind = false;
straight = false; royalStraight = false; flush = false;
fullHouse = false; fourKind = false; straightFlush = false;
RoyalFlush = false;
if (hand[0].getSuit().equals(hand[1].getSuit())
&& hand[1].getSuit().equals(hand[2].getSuit())
&& hand[2].getSuit().equals(hand[3].getSuit())
&& hand[3].getSuit().equals(hand[4].getSuit())) {
flush = true;
displayDeal = "You have a flush";
displayFinish = "Flush. Win $250.00 dollars.";
}
if (sort2(hand) && !royalStraight) {
straight = true;
displayDeal = "You have a straight";
displayFinish = "Straight. Win $200.00 dollars.";
}
if (straight && flush) {
straightFlush = true;
straight = false;
flush = false;
displayDeal = "You have a straight Flush";
displayFinish = "straight Flush. Win $500.00 dollars.";
}
if (straightFlush) {
for (int j = 9; j < 13; j++) {
if (hand[i].getFace().equals(faces[j])
&& hand[i + 1].getFace().equals(faces[j])
&& hand[i + 2].getFace().equals(faces[j])
&& hand[i + 3].getFace().equals(faces[j])
&& hand[i + 4].getFace().equals(faces[j])) {
straightFlush = false;
RoyalFlush = true;
displayDeal = "You have a royal Flush";
displayFinish = "Royal Flush. Win $1000.00 dollars.";
}
}
}
if (straight) {
for (int j = 9; j < 13; j++) {
if (hand[i].getFace().equals(faces[j])
&& hand[i + 1].getFace().equals(faces[j])
&& hand[i + 2].getFace().equals(faces[j])
&& hand[i + 3].getFace().equals(faces[j])
&& hand[i + 4].getFace().equals(faces[j])) {
straight = false;
royalStraight = true;
displayDeal = "You have a royal straight";
displayFinish = "royal Straight. Win $200.00 dollars.";
}
}
}
if (hand[0].getFace().equals(hand[1].getFace())
&& hand[0].getFace().equals(hand[2].getFace())
&& hand[0].getFace().equals(hand[3].getFace())
|| hand[1].getFace().equals(hand[2].getFace())
&& hand[1].getFace().equals(hand[3].getFace())
&& hand[1].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[1].getFace())
&& hand[0].getFace().equals(hand[3].getFace())
&& hand[0].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[2].getFace())
&& hand[0].getFace().equals(hand[3].getFace())
&& hand[0].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[1].getFace())
&& hand[0].getFace().equals(hand[2].getFace())
&& hand[0].getFace().equals(hand[4].getFace())) {
fourKind = true;
displayDeal = "You have a four of a kind";
displayFinish = "Four of a kind. Win $400.00 dollars.";
} else if (hand[0].getFace().equals(hand[1].getFace())
&& hand[2].getFace().equals(hand[3].getFace())
|| hand[0].getFace().equals(hand[1].getFace())
&& hand[3].getFace().equals(hand[4].getFace())
|| hand[1].getFace().equals(hand[2].getFace())
&& hand[3].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[2].getFace())
&& hand[3].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[1].getFace())
&& hand[2].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[4].getFace())
&& hand[1].getFace().equals(hand[2].getFace())
|| hand[0].getFace().equals(hand[3].getFace())
&& hand[1].getFace().equals(hand[2].getFace())
|| hand[1].getFace().equals(hand[4].getFace())
&& hand[2].getFace().equals(hand[3].getFace())
|| hand[0].getFace().equals(hand[3].getFace())
&& hand[1].getFace().equals(hand[4].getFace()) && !fullHouse) {
twoPair = true;
displayDeal = "You have two pairs. ";
displayFinish = "Two Pairs. Win $100.00 dollars.";
} else if (hand[0].getFace().equals(hand[1].getFace())
&& hand[1].getFace().equals(hand[2].getFace())
&& hand[3].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[1].getFace())
&& hand[1].getFace().equals(hand[3].getFace())
&& hand[2].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[1].getFace())
&& hand[1].getFace().equals(hand[4].getFace())
&& hand[2].getFace().equals(hand[3].getFace())
|| hand[0].getFace().equals(hand[3].getFace())
&& hand[3].getFace().equals(hand[4].getFace())
&& hand[1].getFace().equals(hand[2].getFace())
|| hand[1].getFace().equals(hand[2].getFace())
&& hand[2].getFace().equals(hand[4].getFace())
&& hand[0].getFace().equals(hand[3].getFace())
|| hand[2].getFace().equals(hand[3].getFace())
&& hand[3].getFace().equals(hand[4].getFace())
&& hand[0].getFace().equals(hand[1].getFace())
|| hand[1].getFace().equals(hand[2].getFace())
&& hand[2].getFace().equals(hand[3].getFace())
&& hand[0].getFace().equals(hand[4].getFace()) && !straightFlush) {
fullHouse = true;
displayDeal = "You have a full house.";
displayFinish = "Full House. Win $300.00 dollars.";
}
if ((hand[0].getFace().equals(hand[1].getFace())
&& hand[1].getFace().equals(hand[2].getFace())
|| hand[0].getFace().equals(hand[2].getFace())
&& hand[0].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[2].getFace())
&& hand[0].getFace().equals(hand[3].getFace())
|| hand[1].getFace().equals(hand[3].getFace())
&& hand[1].getFace().equals(hand[4].getFace())
|| hand[0].getFace().equals(hand[1].getFace())
&& hand[1].getFace().equals(hand[3].getFace())
|| hand[0].getFace().equals(hand[1].getFace())
&& hand[1].getFace().equals(hand[4].getFace())
|| hand[1].getFace().equals(hand[2].getFace())
&& hand[2].getFace().equals(hand[4].getFace())
|| hand[2].getFace().equals(hand[3].getFace())
&& hand[3].getFace().equals(hand[4].getFace())
|| hand[1].getFace().equals(hand[2].getFace())
&& hand[2].getFace().equals(hand[3].getFace()))
&& !twoPair && !fullHouse && !fourKind) {
threeKind = true;
displayDeal = "You have three of a kind of " + setOf + "s.";
displayFinish = "three of a kind of " + setOf + "s. Win $150.00 dollars.";
} else if ((hand[i].getFace().equals(hand[i + 1].getFace())
|| hand[i].getFace().equals(hand[i + 2].getFace())
|| hand[i].getFace().equals(hand[i + 3].getFace())
|| hand[i].getFace().equals(hand[i + 4].getFace())
|| hand[i + 1].getFace().equals(hand[i + 2].getFace())
|| hand[i + 1].getFace().equals(hand[i + 3].getFace())
|| hand[i + 1].getFace().equals(hand[i + 4].getFace())
|| hand[i + 2].getFace().equals(hand[i + 3].getFace())
|| hand[i + 2].getFace().equals(hand[i + 4].getFace())
|| hand[i + 3].getFace().equals(hand[4].getFace()))
&& !twoPair && !threeKind && !fullHouse) {
pair = true;
displayDeal = "You have a pair of " + setOf + "s.";
displayFinish = "Pair of " + setOf + "s. Win $50.00 dollars.";
}
if (!pair && !twoPair && !threeKind && !fullHouse && !fourKind
&& !straight && !flush && !straightFlush && !RoyalFlush
&& !royalStraight) {
nothing = true;
displayDeal = "You have nothing.";
displayFinish = "Nothing. Lose 20.00 dollars.";
}
this.validate();
}
public int getFaceValue2(poker.Card card) {
String s = card.getFace();
byte byte0 = 0;
if (s.equals(faces[0])) {
byte0 = 2;
}
if (s.equals(faces[1])) {
byte0 = 3;
}
if (s.equals(faces[2])) {
byte0 = 4;
}
if (s.equals(faces[3])) {
byte0 = 5;
}
if (s.equals(faces[4])) {
byte0 = 6;
}
if (s.equals(faces[5])) {
byte0 = 7;
}
if (s.equals(faces[6])) {
byte0 = 8;
}
if (s.equals(faces[7])) {
byte0 = 9;
}
if (s.equals(faces[8])) {
byte0 = 10;
}
if (s.equals(faces[9])) {
byte0 = 11;
}
if (s.equals(faces[10])) {
byte0 = 12;
}
if (s.equals(faces[11])) {
byte0 = 13;
}
if (s.equals(faces[12])) {
byte0 = 14;
}
return byte0;
}
public boolean sort2(poker.Card acard[]) {
boolean flag = false;
int ai[] = new int[5];
for (int i = 0; i < 5; i++) {
ai[i] = getFaceValue2(acard[i]);
}
for (int k = 1; k < ai.length; k++) {
for (int l = 0; l < ai.length - 1; l++) {
if (ai[l] > ai[l + 1]) {
int j = ai[l];
ai[l] = ai[l + 1];
ai[l + 1] = j;
}
}
}
for (int i1 = 0; i1 < ai.length - 1; i1++) {
if (ai[0] + 1 == ai[1] && ai[1] + 1 == ai[2] && ai[2] + 1
== ai[3] && ai[3] + 1 == ai[4]) {
flag = true;
} else {
flag = false;
}
}
if (flag) {
System.out.print(hand[0] + " " + hand[1] + " " + hand[2] + " "
+ hand[3] + " " + hand[4]);
}
System.out.print(ai[0] + " " + ai[1] + " " + ai[2] + " " + ai[3]
+ " " + ai[4]);
return flag;
}
}
When i run this applet using eclipse, it runs fine and i can see 2 buttons. Have you tried validating the applet after everything is ready?
this.validate();
this.repaint();
from Container.class:
The validate method is used to cause a container to lay out its subcomponents again. It should be invoked when this container's subcomponents are modified (added to or removed from the container, or layout-related information changed) after the container has been displayed.
I took sometime to modify the code of yours and I removed the paint() method and its working, now the screen display's without any freezing and all the components are displayed. Here's one important information for you which i found regarding paint() method when you extend JApplet.
Note: Move the logic which you had in your paint() method according to your design.
However, JApplets have a lot of extra structure that plain Applets
don't have. Because of this structure, the painting of a JApplet is a
more complex affair and is handled by the system. So, when you make a
subclass of JApplet you should not write a paint() method for it. As
we will see, if you want to draw on a JApplet, you should add a
component to the applet to be used for that purpose. On the other
hand, you can and generally should write an init() method for a
subclass of JApplet.
Below is the modified code, Hope it helps!!!
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class Poker extends JApplet implements ActionListener, ListSelectionListener {
private DefaultListModel listModel = new DefaultListModel();
JList jList = new JList(listModel);
JButton dealButton = new JButton("Deal card");
JButton quitButton = new JButton("Quit");
JButton finishButton = new JButton("finish");
JPanel panel = new JPanel();
JPanel jPanel = new JPanel();
private Poker.Card deck[];
private int currentCard;
private int money;
String faces[] = {
"Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
"Ten", "Jack",
"Queen", "King", "Ace"
};
String suits[] = {
"Hearts", "Diamonds", "Clubs", "Spades"
};
private boolean card1State;
private boolean card2State;
private boolean card3State;
private boolean card4State;
private boolean card5State;
private Poker.Card hand[];
private boolean pressed;
private boolean nothing;
private boolean pair;
private boolean twoPair;
private boolean threeKind;
private boolean fourKind;
private boolean fullHouse;
private boolean flush;
private boolean straight;
private boolean royalStraight;
private boolean straightFlush;
private boolean RoyalFlush;
private final int ROYALFLUSH = 8;
private int value;
private boolean firstDeal;
#Override
public void init(){
this.setSize(500, 500);
jList.addListSelectionListener(this);
jList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
hand = new Poker.Card[5];
deck = new Poker.Card[52];
currentCard = -1;
for(int i = 0; i < deck.length; i++)
deck[i] = new Poker.Card(faces[i % 13], suits[i / 13]);
listModel.setSize(5);
dealButton.addActionListener(this);
finishButton.addActionListener(this);
quitButton.addActionListener(this);
finishButton.setEnabled(false);
// c.setLayout(new FlowLayout());
panel.add(dealButton);
panel.add(finishButton);
panel.add(quitButton);
add(panel, BorderLayout.SOUTH);
jPanel.add(jList);
add(jPanel, BorderLayout.NORTH);
setVisible(true);
}
class Card
{
#Override
public String toString()
{
return face + " of " + suit + "\n";
}
public String getFace()
{
return face;
}
public String getSuit()
{
return suit;
}
private String face;
private String suit;
public Card(String s, String s1)
{
face = s;
suit = s1;
}
}
#Override
public void valueChanged(ListSelectionEvent event) {
JList source = (JList) event.getSource();
java.util.List values = source.getSelectedValuesList();
listModel.removeElement(values);
changeCards();
}
#Override
public void actionPerformed(ActionEvent event) {
Poker.Card card = null;
int i = 5;
if(event.getSource() == dealButton){
pressed = true;
dealButton.setEnabled(false);
finishButton.setEnabled(true);
for(int j = 0; j < 5; j++){
card = dealCard();
hand[j] = card;
listModel.setElementAt(hand[j], j);
}
if(money < -1000){
JOptionPane.showMessageDialog(null, "GAME OVER. ");
System.exit(0);
}
}else if( event.getSource() == finishButton){
// still needs implementation
} else if (event.getSource() == quitButton) {
pressed = true;
int confirmed = JOptionPane.showConfirmDialog(null,
"Are you sure you want to exit?", "User Confirmation",
JOptionPane.YES_NO_OPTION);
if (confirmed == JOptionPane.YES_OPTION) {
dealButton.setEnabled(false);
finishButton.setEnabled(false);
quitButton.setEnabled(false);
System.exit(0);
}
}
this.setVisible(true);
this.validate();
}
public void giveMoney() {
if (nothing)
{ money -= 20;
}
if (pair) {
money += 50;
}
if (twoPair) {
money += 100;
}
if (threeKind) {
money += 150;
}
if (straight) {
money += 200;
}
if (royalStraight)
{
money += 200;
}
if (flush) {
money += 250;
}
if (fullHouse) {
money += 300;
}
if (fourKind)
{
money += 400;
}
if (straightFlush) {
money += 500;
}
if (RoyalFlush) {
money += 1000;
}
}
public void shuffle() {
for (int i = 0; i < deck.length; i++) {
int j = (int) (Math.random() * 52D);
Poker.Card card = deck[i];
deck[i] = deck[j];
deck[j] = card;
}
dealButton.setEnabled(true);
this.validate();
}
public Poker.Card dealCard() {
if (++currentCard < deck.length) {
return deck[currentCard];
} else {
dealButton.setEnabled(false);
return null;
}
}
// public void paint(Graphics g){
//
// this.setBackground(Color.gray);
// Font font = new Font("Italic", 3, 14);
// g.setFont(font);
// if(pressed)
// {
// Font font1 = new Font("Card", 1, 24);
// g.setFont(font1);
//
// if(nothing)
// g.drawString("You got nothing!! You lose $20 ", 50, 125);
// if(pair)
// g.drawString("A pair!! Win $50 ", 50, 125);
// if(twoPair)
// g.drawString("Two pair!! win $100 ", 50, 125);
// if(threeKind)
// g.drawString("Three of a Kind!! Win $150 ", 50, 125);
// if(straight)
// g.drawString("A Straight!! Win $200 ", 50, 125);
// if (royalStraight)
// g.drawString("A Royal Straight!! Win $200 ", 50, 125);
// if(flush)
// g.drawString("A Flush!! Win $250 ", 50, 125);
// if(fullHouse)
// g.drawString("A Full House!! Win $300 ", 50, 125);
// if(straightFlush)
// g.drawString("A Straight Flush!! Win $500 ", 50, 125);
// if(RoyalFlush)
// g.drawString("A Royal Flush!! Win $100 ", 50, 125);
// }
//
// this.setVisible(true);
// }
public void changeCards(){
System.out.println("change cards");
firstDeal = true;
Object obj = null;
if(!card1State)
{
Poker.Card card = dealCard();
hand[0] = card;
}
if(!card2State)
{
Poker.Card card6 = dealCard();
hand[1] = card6;
}
if(!card3State)
{
Poker.Card card7 = dealCard();
hand[2] = card7;
}
if(!card4State)
{
Poker.Card card8 = dealCard();
hand[3] = card8;
}
if(!card5State)
{
Poker.Card card9 = dealCard();
hand[4] = card9;
}
}
public void evaluate() {
int i = 0;
if(hand[0].getSuit().equals(hand[1].getSuit()) &&
hand[1].getSuit().equals(hand[2].getSuit()) &&
hand[2].getSuit().equals(hand[3].getSuit()) &&
hand[3].getSuit().equals(hand[4].getSuit()))
{
flush = true;
if (flush == true)
System.out.println("you got a a flush");
}
if(sort2(hand)){
straight = true;
if (straight = true)
System.out.println("you got a a straight");
}
if(straight && flush)
{
straightFlush = true;
straight = false;
flush = false;
System.out.println("you got a straight flush");
}
if(straightFlush)
{
for(int j = 9; j < 13; j++)
if(hand[i].getFace().equals(faces[j]) &&
hand[i + 1].getFace().equals(faces[j + 1]) &&
hand[i + 2].getFace().equals(faces[j + 2]) &&
hand[i + 3].getFace().equals(faces[j + 3]) &&
hand[i + 4].getFace().equals(faces[j + 4]))
{
straightFlush = false;
RoyalFlush = true;
}
}
if(hand[0].getFace().equals(hand[1].getFace()) &&
hand[0].getFace().equals(hand[2].getFace()) &&
hand[0].getFace().equals(hand[3].getFace()) ||
hand[1].getFace().equals(hand[2].getFace()) &&
hand[1].getFace().equals(hand[3].getFace()) &&
hand[1].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[1].getFace()) &&
hand[0].getFace().equals(hand[3].getFace()) &&
hand[0].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[2].getFace()) &&
hand[0].getFace().equals(hand[3].getFace()) &&
hand[0].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[1].getFace()) &&
hand[0].getFace().equals(hand[2].getFace()) &&
hand[0].getFace().equals(hand[4].getFace()))
fourKind = true;
else
if(hand[0].getFace().equals(hand[1].getFace()) &&
hand[2].getFace().equals(hand[3].getFace()) ||
hand[0].getFace().equals(hand[1].getFace()) &&
hand[3].getFace().equals(hand[4].getFace()) ||
hand[1].getFace().equals(hand[2].getFace()) &&
hand[3].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[2].getFace()) &&
hand[3].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[1].getFace()) &&
hand[2].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[4].getFace()) &&
hand[1].getFace().equals(hand[2].getFace()) ||
hand[0].getFace().equals(hand[3].getFace()) &&
hand[1].getFace().equals(hand[2].getFace()) ||
hand[1].getFace().equals(hand[4].getFace()) &&
hand[2].getFace().equals(hand[3].getFace()) ||
hand[0].getFace().equals(hand[3].getFace()) &&
hand[1].getFace().equals(hand[4].getFace()) && !fullHouse)
{
System.out.println("2 pair=true;");
twoPair = true;
} else
if(hand[0].getFace().equals(hand[1].getFace()) &&
hand[1].getFace().equals(hand[2].getFace()) &&
hand[3].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[1].getFace()) &&
hand[1].getFace().equals(hand[3].getFace()) &&
hand[2].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[1].getFace()) &&
hand[1].getFace().equals(hand[4].getFace()) &&
hand[2].getFace().equals(hand[3].getFace()) ||
hand[0].getFace().equals(hand[3].getFace()) &&
hand[3].getFace().equals(hand[4].getFace()) &&
hand[1].getFace().equals(hand[2].getFace()) ||
hand[1].getFace().equals(hand[2].getFace()) &&
hand[2].getFace().equals(hand[4].getFace()) &&
hand[0].getFace().equals(hand[3].getFace()) ||
hand[2].getFace().equals(hand[3].getFace()) &&
hand[3].getFace().equals(hand[4].getFace()) &&
hand[0].getFace().equals(hand[1].getFace()) ||
hand[1].getFace().equals(hand[2].getFace()) &&
hand[2].getFace().equals(hand[3].getFace()) &&
hand[0].getFace().equals(hand[4].getFace()) && !straightFlush){
fullHouse = true;
}
if((hand[0].getFace().equals(hand[1].getFace()) &&
hand[1].getFace().equals(hand[2].getFace()) ||
hand[0].getFace().equals(hand[2].getFace()) &&
hand[0].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[2].getFace()) &&
hand[0].getFace().equals(hand[3].getFace()) ||
hand[1].getFace().equals(hand[3].getFace()) &&
hand[1].getFace().equals(hand[4].getFace()) ||
hand[0].getFace().equals(hand[1].getFace()) &&
hand[1].getFace().equals(hand[3].getFace()) ||
hand[0].getFace().equals(hand[1].getFace()) &&
hand[1].getFace().equals(hand[4].getFace()) ||
hand[1].getFace().equals(hand[2].getFace()) &&
hand[2].getFace().equals(hand[4].getFace()) ||
hand[2].getFace().equals(hand[3].getFace()) &&
hand[3].getFace().equals(hand[4].getFace()) ||
hand[1].getFace().equals(hand[2].getFace()) &&
hand[2].getFace().equals(hand[3].getFace())) &&
!twoPair && !fullHouse && !fourKind){
threeKind = true;
}
else
if((hand[i].getFace().equals(hand[i + 1].getFace()) ||
hand[i].getFace().equals(hand[i + 2].getFace()) ||
hand[i].getFace().equals(hand[i + 3].getFace()) ||
hand[i].getFace().equals(hand[i + 4].getFace()) ||
hand[i + 1].getFace().equals(hand[i + 2].getFace()) ||
hand[i + 1].getFace().equals(hand[i + 3].getFace()) ||
hand[i + 1].getFace().equals(hand[i + 4].getFace()) ||
hand[i + 2].getFace().equals(hand[i + 3].getFace()) ||
hand[i + 2].getFace().equals(hand[i + 4].getFace()) ||
hand[i + 3].getFace().equals(hand[4].getFace())) &&
!twoPair && !threeKind && !fullHouse){
pair = true;
}
else
{ nothing = true;
System.out.println("you got nothing");
}
this.validate();
// giveMoney();
}
public int getFaceValue2( Poker.Card card) {
String s = card.getFace();
byte byte0 = 0;
if(s.equals(faces[0]))
byte0 = 2;
if(s.equals(faces[1]))
byte0 = 3;
if(s.equals(faces[2]))
byte0 = 4;
if(s.equals(faces[3]))
byte0 = 5;
if(s.equals(faces[4]))
byte0 = 6;
if(s.equals(faces[5]))
byte0 = 7;
if(s.equals(faces[6]))
byte0 = 8;
if(s.equals(faces[7]))
byte0 = 9;
if(s.equals(faces[8]))
byte0 = 10;
if(s.equals(faces[9]))
byte0 = 11;
if(s.equals(faces[10]))
byte0 = 12;
if(s.equals(faces[11]))
byte0 = 13;
if(s.equals(faces[12]))
byte0 = 14;
return byte0;
}
public boolean sort2( Poker.Card acard[]){
boolean flag = false;
int ai[] = new int[5];
for(int i = 0; i < 5; i++)
ai[i] = getFaceValue2(acard[i]);
for(int k = 1; k < ai.length; k++)
{
for(int l = 0; l < ai.length - 1; l++)
if(ai[l] > ai[l + 1])
{
int j = ai[l];
ai[l] = ai[l + 1];
ai[l + 1] = j;
}
}
for(int i1 = 0; i1 < ai.length - 1; i1++)
if(ai[0] + 1 == ai[1] && ai[1] + 1 == ai[2] && ai[2] + 1 ==
ai[3] && ai[3] + 1 == ai[4])
flag = true;
else
flag = false;
if(flag)
System.out.print(hand[0] + " " + hand[1] + " " + hand[2] + " " +
hand[3] + " " + hand[4]);
System.out.print(ai[0] + " " + ai[1] + " " + ai[2] + " " + ai[3] +
" " + ai[4]);
return flag;
}
}

Categories

Resources