Eai galera, sou iniciante em java e estou com uma dúvida neste código
[code]import java.util.;
import javax.swing.;
public class JogoVelha {
public static void main(String[] args) {
Jogo j1 = new Jogo();
System.out.println(“Jogo da Velha”);
String a = JOptionPane.showInputDialog("Entre com o nome do jogador1: ");
String b = JOptionPane.showInputDialog("Entre com o nome do jogador2: ");
String jogador1 = a;
String jogador2 = b;
System.out.println("Jogador 1: " + a);
System.out.println("Jogador 2: " + b);
Tabuleiro.imprimir();
Jogador.jogar();
class Tabuleiro {
String p1, p2, p3, p4, p5, p6, p7, p8, p9;
void imprimir() {
System.out.println(p1 + p2 + p3);
System.out.println(p4 + p5 + p6);
System.out.println(p7 + p8 + p9);
}
}
class Jogo {
}
class Jogador {
String nome;
String simb;
Jogo j;
void jogar() {
}
String p = JOptionPane.showInputDialog("Qual a sua posição? ");
int x = Integer.parseInt§;
switch (x) {
case 1:
Tabuleiro.p1 = “x”;
break;
case 2 :
Tabuleiro.p2 = “x”;
break;
case 3 :
Tabuleiro.p3 = “x”;
break;
case = 4 :
Tabuleiro.p4 = “x”;
break;
case = 5 :
Tabuleiro.p5 = “x”;
break;
case = 6 :
Tabuleiro.p6 = “x”;
break;
case = 7 :
Tabuleiro.p7 = “x”;
break;
case = 8 :
Tabuleiro.p8 = “x”;
break;
case = 9 :
Tabuleiro.p9 = “x”;
break;
}
}
}
}[/code]
quando vou compilar aparecem os seguintes erros
:39: error: illegal start of type
switch (x) {
^
:39: error: expected
switch (x) {
:40: error: orphaned case
case 1:
^
gostaria que alguem me dissesse onde eu estou errando 
Desde já, obrigado.
Cara, isso nunca vai compilar. Tem muita coisa errada.
lucasstoffel
Cara, vc sabe o que é abertura e fechamento de um método e/ou uma classe?
Tem problemas no seu código relacionados a isso, que o compilador está reclamando.
Quando vc tem:
class A{
public String a;
void metodo(){ }
switch...
}
vc sabe qual o erro aqui?
Você não pode ter instruções onde está esse switch ai em cima.
Vc tem apenas declarações de atributos como o String a.
O problema do seu switch, que o compilador reclama é idêntico a esse aí.
Aproveite e estude um pouco sobre indentação de código. Ela ajuda a identificar problemas desse tipo.
não entendi direito… eu preciso dar instruçoes de onde está o meu switch?
Não.
Vc precisa dar instruções em locais de instruções.
E declarar métodos e atributos em locais de declarações.
Você tá executando um switch no meio da classe, fora de qualquer método. Entendeu?
Você sabe bem o que é método, classe, objeto? Dê uma estudada a fundo nisso.
Entendi cara.
Eu preciso executar o switch dentro de um método, certo?
Vou estudar isso mais a fundo.
Isso mesmo.
Quando surgir as duvidas pode ir postando que a gente vai tentando te ajudar.
Valeu!
Cara, to executando meu switch dentro de um método agora, porém estou com um outro erro…
Quando vou compilar aparece o erro
:41: non-static variable p1 cannot be referenced from a static context
Tabuleiro.p1 = “x”;
^
[code]import java.util.;
import javax.swing.;
public class JogoVelha {
public static void main(String[] args) {
Jogo j1 = new Jogo();
System.out.println(“Jogo da Velha”);
String a = JOptionPane.showInputDialog("Entre com o nome do jogador1: ");
String b = JOptionPane.showInputDialog("Entre com o nome do jogador2: ");
String jogador1 = a;
String jogador2 = b;
System.out.println("Jogador 1: " + a);
System.out.println("Jogador 2: " + b);
Tabuleiro.imprimir();
Jogador.jogar();
class Tabuleiro {
public String p1, p2, p3, p4, p5, p6, p7, p8, p9;
void imprimir() {
System.out.println(p1 + p2 + p3);
System.out.println(p4 + p5 + p6);
System.out.println(p7 + p8 + p9);
}
}
class Jogo {
}
class Jogador {
String nome;
String simb;
Jogo j;
public void jogar() {
String p = JOptionPane.showInputDialog("Qual a sua posição? ");
int x = Integer.parseInt§;
switch (x) {
case 1:
Tabuleiro.p1 = “x”;
break;
case 2 :
Tabuleiro.p2 = “x”;
break;
case 3 :
Tabuleiro.p3 = “x”;
break;
case 4 :
Tabuleiro.p4 = “x”;
break;
case 5 :
Tabuleiro.p5 = “x”;
break;
case 6 :
Tabuleiro.p6 = “x”;
break;
case 7 :
Tabuleiro.p7 = “x”;
break;
case 8 :
Tabuleiro.p8 = “x”;
break;
case 9 :
Tabuleiro.p9 = “x”;
break;
}
}
}
}
}
[/code]
Vou responder com uma pergunta pra vc ir aprendendo.
public class A{
public String x;
}
public class B{
public void metodo(){
A.x = "a";
}
}
O que tem de errado nisso aí?
É o mesmo erro do seu programa.
Você não pode acessar uma variável de instância (um atributo) com A.x (a não ser que ele seja estática).
Você precisa entender porque existem variáveis estáticas e de instâncias. Veja se acha material sobre isso, sobre Orientação a Objetos. Talvez tenha alguma apostila da Caelum pra isto.
Fica um pouco difícil explicar em poucas linhas. São conceitos difíceis mesmo pra quem não conhece orientação a objetos. Portanto não se preocupe, normal essas dificuldades.
Abs.
Então como eu acesso uma variavel de instancia?
Eu ja baixei a apostila de Orientaçao a Objetos da Caleum, ja dei uma estudada, mas vou me aprofundar mais.
Você precisa criar um objeto da classe pra ter uma variavel de instância.
Quando vc tem uma um objeto, vc automaticamente tem uma referencia para cada var de instancia da classe (pra aquele objeto).
public class A{
public String x;
void metodo(){
// acesso de dentro da propria classe
this.x = "oi";
}
}
public class B{
void metodoQualquer(){
A a = new A();
a.x = "teste";
// considerando que neste caso, x em A é public
}
}
Cara valeu mesmo, consegui executar o switch 
Qualquer outra duvida eu posto aqui, pode ser?