Tic Tac Toe Java Application Help w/ Importing Text Field
Here is the code I am currently working with and am having troubles starting with trying to get my results to end up in a SOUTH text field to display who wins. If anybody has any tips or hints please do help :) I need results to end up in a text field preferably incorporated below the tic tac toe game. I have inputted in now and a window pops up telling who wins, which i understand I just need it to show in a textfield.
Code Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import java.awt.Color;
public class TicTacToe implements ActionListener {
/*Instance Variables*/
private int[][] winCombinations = new int[][] {
{0, 1, 2}, {3, 4, 5}, {6, 7, 8}, //horizontal wins
{0, 3, 6}, {1, 4, 7}, {2, 5, 8}, //virticle wins
{0, 4, 8}, {2, 4, 6} //diagonal wins
};
private JFrame window = new JFrame("Tic-Tac-Toe");
private JButton buttons[] = new JButton[9];
private int count, xWins, oWins, X, O, SOUTH, b1 = 0;
private String letter = "";
private boolean win = false;
private Choice colors= new Choice();
/////////////////////////////////////////////////////////////////////////////////////////
public TicTacToe(){
/*Creates the menu bar*/
JMenuBar menuBar = new JMenuBar();
window.setJMenuBar(menuBar);
/*Creates "File" Button to Menu*/
JMenu fileMenu = new JMenu("File");
menuBar.add(fileMenu);
/*Creats drop down action buttons to grid*/
JMenuItem clearAction = new JMenuItem("Clear");
JMenuItem aboutAction = new JMenuItem("About");
JMenuItem exitAction = new JMenuItem("Exit");
fileMenu.add(clearAction);
fileMenu.add(aboutAction);
fileMenu.addSeparator();
fileMenu.add(exitAction);
////////////////////////////////////////////////////////////////////////////////////////////
/*Create Window*/
window.setSize(300,300);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(3,3));
/*Add Buttons To The Window*/
for(int i=0; i<=8; i++){
buttons[i] = new JButton();
window.add(buttons[i]);
buttons[i].addActionListener(this);
}
/*Make The Window Visible*/
window.setVisible(true);
}
/**
When an object is clicked, perform an action.
@param a action event object
*/
public void actionPerformed(ActionEvent a) {
count++;
/*Calculate whose turn it is*/
if(count % 2 == 0){
letter = "O";
} else {
letter = "X";
}
/*Write the letter to the button and deactivate it*/
JButton pressedButton = (JButton)a.getSource();
pressedButton.setText(letter);
pressedButton.setEnabled(false);
pressedButton.setBackground(Color.RED);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*Determine who won*/
for(int i=0; i<=7; i++){
if( buttons[winCombinations[i][0]].getText().equals(buttons[winCombinations[i][1]].getText()) &&
buttons[winCombinations[i][1]].getText().equals(buttons[winCombinations[i][2]].getText()) &&
buttons[winCombinations[i][0]].getText() != ""){
win = true;
}
}
/*Show a dialog when game is over*/
if(win == true){
JOptionPane.showMessageDialog(null, letter + " wins the game!");
System.exit(0);
} else if(count == 9 && win == false){
JOptionPane.showMessageDialog(null, "The game was tie!");
playAgainDialog();
}
}
public void playAgainDialog() {
if(letter.equals("X")) xWins++;
else oWins++;
int response = JOptionPane.showConfirmDialog(null, "Do you want to play again?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if(response == JOptionPane.YES_OPTION) reset();
else System.exit(0);
}
public void reset() {
for(int i=0; i<=8; i++){
buttons[i].setText("");
buttons[i].setEnabled(true);
}
win = false;
count = 0;
}
public static void main(String[] args){
TicTacToe starter = new TicTacToe();
}
}
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
Basically what I am having problems with is this:
I need this not to show up as a Dialog...but I need it to show up in a TextField of my Border Layout
My current code for that:
Code Java:
if(win == true){
JOptionPane.showMessageDialog(null, letter + " wins the game!");
System.exit(0);
} else if(count == 9 && win == false){
JOptionPane.showMessageDialog(null, "The game was tie!");
playAgainDialog();
}
}
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
You are getting plenty of help in the other forum. Do not waste peoples time by asking for help here also.
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
Nobody has really "helped" me yet they are giving me hints to what I need to fix. And still I am having troubles
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
SO?
Keep it in one thread. If you ask for help here then someone who is not aware of the other thread may waste their time given you the same help that you have already received.
The Problems With Cross Posting
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
Place a text field in the panel, and set it's visibility to false with the default text "You Won" and when this condition comes true, enable that field and you will get what you want.
Hope it helps...
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
Quote:
Originally Posted by
Mr.777
Place a text field in the panel, and set it's visibility to false with the default text "You Won" and when this condition comes true, enable that field and you will get what you want.
Hope it helps...
Ok thanks so this is what I have come up with but no textfield has come up is there any hints you might have to help me get the condition to work so my results will show up? This is what I have for that last part of what you told me what I should add:
Code :
public static void main(String[] args){
JFrame f = new JFrame();
f.setLayout(new BorderLayout());
JTextField tf = new JTextField("You Won");
f.add(tf, BorderLayout.SOUTH); //Changed
f.pack();
f.setVisible(false);
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
Okay now it's not visible. Now in your if condition where you want it to display, set it's visibility to true.
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
Quote:
Originally Posted by
Mr.777
Okay now it's not visible. Now in your if condition where you want it to display, set it's visibility to true.
Ok well right now I have in there a JOption message come up. I need to take that out and start and If else condition. How would I begin to start that?
Re: Tic Tac Toe Java Application Help w/ Importing Text Field
Code java:
if(yoursuccesscondition)
{
f.setvisible(true);
}