Oi!
Estou desenvolvendo um jogo simples em Java. Mas, não estou consiguindo ver os textos no Frame, sendo que, eu o adcionei.
Quero saber de vocês também, se estou indo no caminho certo.
Obrigado!
//TicTacToe.java
//TicTacToe - Jogo da velha
import javax.swing.JOptionPane;
import java.util.Scanner;
public class TicTacToe extends Play {
private String arrayEnter[];
String namePlayerOne;
String namePlayerTwo;
//create Scanner for get info
Scanner input = new Scanner(System.in);
//construct start
public TicTacToe()
{
JOptionPane.showMessageDialog(null, "Welcome to game!");
namePlayerOne = JOptionPane.showInputDialog("Write your name: ");
namePlayerTwo = JOptionPane.showInputDialog("Now, write the name of other player: ");
displayMessageUser();
}
//add name of user
public void addUser(String nameOne, String nameTwo)
{
namePlayerOne = nameOne;
namePlayerTwo = nameTwo;
}
//return name of user
public String getUser()
{
return namePlayerOne;
}
//method for display message of welcome for user
public void displayMessageUser()
{
//options for user
String valueEnter = JOptionPane.showInputDialog(null,"Write Play for play\nOr Exit for exit.");
if (valueEnter.equalsIgnoreCase("Play"))
{
Play playGame = new Play();
playGame.Play();
} else if (valueEnter.equalsIgnoreCase("Exit")) {
exitOptions();
}
}
//Message of output; case the user choose the option exit
public void exitOptions()
{
JOptionPane.showMessageDialog(null, "Thanks you!", "End program",JOptionPane.INFORMATION_MESSAGE);
}
}
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.FlowLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.FlowLayout;
public class Play extends JFrame {
private JTextField welcomeUser;
private JTextField help;
private int start[][]; //start array bidimensional
JFrame labelFrame = new JFrame(); //create LabelFrame
public void Play()
{
setLayout(new FlowLayout());
welcomeUser = new JTextField("Welcome to Game!");
add(welcomeUser);
help = new JTextField("Get help!");
add(help);
}
}
import javax.swing.JFrame;
public class Principal {
public static void main(String args[])
{
TicTacToe tic = new TicTacToe();
tic.setTitle("Game simple on Java!");
tic.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
tic.setSize(500, 200);
tic.setVisible(true);
}
}
Voce deve se atentar no estado do seu frame. No caso do seu codigo na linha 49- Play playGame = new Play(); linha 50 - playGame.Play(); vc está criando nova instancia do proprio objeto herdado. O que é preciso fazer é chamar o método direto que vc estará trabalhando no mesmo estado do objeto ‘Play()’;
tenta usar o this … substituindo esse codigo abaixo na linha 49,50:Play playGame = new Play();
playGame.Play(); por este :this.play();
no caso chamando play() do objeto corrente ele vai conter os objetos que vc add … pq no momento que vc cria uma nova instancia ele nao tem os objetos ja inclusos… posso estar enganado mas testa aew xD
obs: na linha 97 … vc tem um metodo play… que é o mesmo nome da classe… caso queira um construtor… vc precisa tirar o void… e ele reconhecera como construtor… entao toda vez que vc criar uma instancia o Frame ja vem com os objetos que vc add…
Oi, clauslk!
Consigui resolver o problem!
Grato por responder. Mas agora, eu quero realizar um evento ao clicar no menu. Veja o código:
//TicTacToe.java
//TicTacToe - Jogo da velha
import javax.swing.JOptionPane;
import java.util.Scanner;
public class TicTacToe extends Play {
private String arrayEnter[];
String namePlayerOne;
String namePlayerTwo;
//create Scanner for get info
Scanner input = new Scanner(System.in);
//construct start
public TicTacToe()
{
JOptionPane.showMessageDialog(null, "Welcome to game!");
namePlayerOne = JOptionPane.showInputDialog("Write your name: ");
namePlayerTwo = JOptionPane.showInputDialog("Now, write the name of other player: ");
displayMessageUser();
}
//add name of user
public void addUser(String nameOne, String nameTwo)
{
namePlayerOne = nameOne;
namePlayerTwo = nameTwo;
}
//return name of user
public String getUser()
{
return namePlayerOne;
}
//method for display message of welcome for user
public void displayMessageUser()
{
//options for user
String valueEnter = JOptionPane.showInputDialog(null,"Write Play for play\nOr Exit for exit.");
if (valueEnter.equalsIgnoreCase("Play"))
{
Play playGame = new Play();
playGame.Play();
} else if (valueEnter.equalsIgnoreCase("Exit")) {
exitOptions();
}
}
//Message of output; case the user choose the option exit
public void exitOptions()
{
JOptionPane.showMessageDialog(null, "Thanks you!", "End program",JOptionPane.INFORMATION_MESSAGE);
}
}
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.FlowLayout;
public class Play extends JFrame {
private JButton welcomeUser;
private JButton helpGame;
public void Play()
{
setTitle("Game simple on Java!");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 100);
setVisible(true);
setLayout(new FlowLayout());
welcomeUser = new JButton("Start game!"); //menu for start game
add(welcomeUser); //add welcomeUser to JFrame (Frame)
helpGame = new JButton("Get help!"); //menu for get help
add(helpGame); //add helpGame to JFrame (Frame)
}
}
import javax.swing.JFrame;
public class Principal {
public static void main(String args[])
{
TicTacToe tic = new TicTacToe();
}
}
Certo vc tem um JButton e quer criar um evento nele… vc esta gerando os codigos onde? usa NetBeans? se for o caso é simples basta clicar duas vezes no botao… e gera automaticamente um evento para o botao…
como no exemplo abaixo:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// aqui vai o seu codigo
}
obs… no nome do metodo acima… jButton1 é o nome do objeto que executa a acao… portanto coloque o nome do seu objeto da mesma forma que esta ali
caso vc esteja fazendo manualmente… testa aew
obs … atualmente estou fazendo um jogo da velha tb … porem com inteligencia artificial e varias frescuras rsrs … usei como trabalho no curso… e continuo trabalhando no projeto ^^ futuramente disponibilizo pra galera … demora um pouquinho ainda pq ando meio sem tempo… e tenho projetos em paralelo