import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Janela extends JFrame{
JButton atualizar, restart;
//criando as linhas de exebição na tela
JLabel linha1, linha2, coluna1, coluna1_1, coluna1_2, coluna1_3, coluna1_4, coluna1_5;
JLabel coluna2, coluna2_1, coluna2_2, coluna2_3, coluna2_4, coluna2_5;
// criando os campos de preenchimento do jogo, para "X" or "O"
JTextField quadrado1, quadrado2, quadrado3, quadrado4, quadrado5, quadrado6, quadrado7, quadrado8, quadrado9;
//função de exebição
Janela(){;
init();
initcomponents();
addcomponents();
}
//Init para iniciar coisas da própria janela, exibição
private void init(){
//visibilidade da janela sempre disponivel ao iniciar o programa
this.setVisible(true);
JOptionPane.showMessageDialog(null,"Maximize a tela para poder carregar o jogo!");
//janela principal, atributos, tamanho, cor, e titulo
this.setSize(280, 250);
this.setTitle("Jogo da Velha");
this.getContentPane().setLayout(null);
this.getContentPane().setBackground(Color.cyan);
//encerrar programa, quando clicar em fechar
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//botao do jogo para atualizar a jogada/jogo
atualizar = new JButton("Atualizar");
//botão sempre visivel, ativado
atualizar.setVisible(true);
//propriedades do botão,como: tamanho, posicionamento, cores de nome e fundo do botao de novo jogo
atualizar.setSize(105, 30);
atualizar.setLocation(25, 150);
atualizar.setForeground(Color.ORANGE);
atualizar.setBackground(Color.black);
//botao do jogo para começar uma nova partida
restart = new JButton("Restart");
//botão sempre visivel, ativado
restart.setVisible(true);
//propriedades do botão,como: tamanho, posicionamento, cores de nome e fundo do botao de novo jogo
restart.setSize(100,30);
restart.setLocation(145,150);
restart.setForeground(Color.ORANGE);
restart.setBackground(Color.black);
}
//Init Components para iniciar posição, tamanho... dos componentes
private void initcomponents(){
//criação de linhas e colunas de exibição do jogo
linha1 = new JLabel("________________");
linha2 = new JLabel("________________");
coluna1 = new JLabel("|"); coluna1_1 = new JLabel("|"); coluna1_2 = new JLabel("|"); coluna1_3 = new JLabel("|"); coluna1_4 = new JLabel("|"); coluna1_5 = new JLabel("|");
coluna2 = new JLabel("|"); coluna2_1 = new JLabel("|"); coluna2_2 = new JLabel("|"); coluna2_3 = new JLabel("|"); coluna2_4 = new JLabel("|"); coluna2_5 = new JLabel("|");
//criando os campos para serem preenchidos pelos jogadores
quadrado1 = new JTextField(); quadrado4 = new JTextField(); quadrado7 = new JTextField();
quadrado2 = new JTextField(); quadrado5 = new JTextField(); quadrado8 = new JTextField();
quadrado3 = new JTextField(); quadrado6 = new JTextField(); quadrado9 = new JTextField();
//criando o tamanho, posicionamento e fazendo aparecer na tela do jogo, linhas e colunas
linha1.setSize(150, 100); linha2.setSize(150, 100);
linha1.setLocation(78, 25); linha2.setLocation(78, 50);
this.getContentPane().add(linha1); this.getContentPane().add(linha2);
coluna1.setSize(150, 100); coluna2.setSize(150, 100);
coluna1.setLocation(110, 15); coluna2.setLocation(140, 15);
this.getContentPane().add(coluna1); this.getContentPane().add(coluna2);
coluna1_1.setSize(150, 100); coluna2_1.setSize(150, 100);
coluna1_1.setLocation(110, 27); coluna2_1.setLocation(140, 27);
this.getContentPane().add(coluna1_1); this.getContentPane().add(coluna2_1);
coluna1_2.setSize(150, 100); coluna2_2.setSize(150, 100);
coluna1_2.setLocation(110, 38); coluna2_2.setLocation(140, 38);
this.getContentPane().add(coluna1_2); this.getContentPane().add(coluna2_2);
coluna1_3.setSize(150, 100); coluna2_3.setSize(150, 100);
coluna1_3.setLocation(110, 48); coluna2_3.setLocation(140, 48);
this.getContentPane().add(coluna1_3); this.getContentPane().add(coluna2_3);
coluna1_4.setSize(150, 100); coluna2_4.setSize(150, 100);
coluna1_4.setLocation(110, 60); coluna2_4.setLocation(140, 60);
this.getContentPane().add(coluna1_4); this.getContentPane().add(coluna2_4);
coluna1_5.setSize(150, 100); coluna2_5.setSize(150, 100);
coluna1_5.setLocation(110, 72); coluna2_5.setLocation(140, 72);
this.getContentPane().add(coluna1_5); this.getContentPane().add(coluna2_5);
//criando o tamanho, posicionamento e fazendo aparecer na tela do jogo, os campos para serem preenchidos
quadrado1.setSize(25, 20); quadrado1.setLocation(85, 60); this.getContentPane().add(quadrado1);
quadrado2.setSize(25, 20); quadrado2.setLocation(115, 60); this.getContentPane().add(quadrado2);
quadrado3.setSize(25, 20); quadrado3.setLocation(145, 60); this.getContentPane().add(quadrado3);
quadrado4.setSize(25, 20); quadrado4.setLocation(85, 85); this.getContentPane().add(quadrado4);
quadrado5.setSize(25, 20); quadrado5.setLocation(115, 85); this.getContentPane().add(quadrado5);
quadrado6.setSize(25, 20); quadrado6.setLocation(145, 85); this.getContentPane().add(quadrado6);
quadrado7.setSize(25, 20); quadrado7.setLocation(85, 110); this.getContentPane().add(quadrado7);
quadrado8.setSize(25, 20); quadrado8.setLocation(115,110); this.getContentPane().add(quadrado8);
quadrado9.setSize(25, 20); quadrado9.setLocation(145,110); this.getContentPane().add(quadrado9);
}
private void addcomponents(){
//adiciona o botão de atualizar na tela
this.getContentPane().add(atualizar);
//funcionalidade do botao ao ser clicado
atualizar.addMouseListener(
new MouseAdapter(){
public void mouseClicked(MouseEvent e){
String quad1,quad2,quad3,quad4,quad5,quad6,quad7,quad8,quad9;
if(e.getSource() == atualizar){
quad1 = quadrado1.getText();
quad2 = quadrado2.getText();
quad3 = quadrado3.getText();
quad4 = quadrado4.getText();
quad5 = quadrado5.getText();
quad6 = quadrado6.getText();
quad7 = quadrado7.getText();
quad8 = quadrado8.getText();
quad9 = quadrado9.getText();
if((!quad1.equals("")) && (!quad2.equals("")) && (!quad3.equals(""))){
if ((quad1.equals(quad2)) && (quad1.equals(quad3)) && (quad3.equals(quad2))){
JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
}
}
if((!quad1.equals("")) && (!quad4.equals("")) && (!quad7.equals(""))){
if((quad1.equals(quad4)) && (quad1.equals(quad7)) && (quad7.equals(quad4))){
JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
}
}
if((!quad1.equals("")) && (!quad5.equals("")) && (!quad9.equals(""))){
if((quad1.equals(quad5)) && (quad1.equals(quad9)) && (quad9.equals(quad5))){
JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
}
}
if((!quad2.equals("")) && (!quad5.equals("")) && (!quad8.equals(""))){
if((quad2.equals(quad5)) && (quad2.equals(quad8)) && (quad8.equals(quad5))){
JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
}
}
if((!quad3.equals("")) && (!quad6.equals("")) && (!quad9.equals(""))){
if((quad3.equals(quad6)) && (quad3.equals(quad9)) && (quad9.equals(quad6))){
JOptionPane.showMessageDialog(null,"Parabéns, você Venceu!!!");
}
}
}
}
}
);
//adiciona o botão de restart na tela;
this.getContentPane().add(restart);
// metodo para limpar os campos da tela do jogo.
restart.addMouseListener(
new MouseAdapter(){
public void mouseClicked(MouseEvent e){
JOptionPane.showMessageDialog(null, "Novo Jogo!");
if(e.getSource() == restart){
quadrado1.setText("");
quadrado2.setText("");
quadrado3.setText("");
quadrado4.setText("");
quadrado5.setText("");
quadrado6.setText("");
quadrado7.setText("");
quadrado8.setText("");
quadrado9.setText("");
}
}
}
);
}
}