Preciso muito de ajuda, alguem online?

Pessoal, tenho um trabalho pra entregar na quarta, é um jogo da velha, em java muito básico…
OO ainda por cima, bagunçando a cabeça.

Eu tenho uma classe tabuleiro, e criei um, porém estou tendo problemas com o null pointer exception e não sei como crio a instancia do objeto…

o código da declaração:

tabuleiro tab = new tabuleiro(3, 3);

o código do construtor:

public tabuleiro(int l, int c){

    linha = l;
    coluna = c;
    linha0 = new Peca[c];
    linha1 = new Peca[c];
    linha2 = new Peca[c];

}

Bom, um null pointer é um dos erros mais simples de se resolver, pis é facil detectar o ponto.

Olhe na exception em qual linha está dando o nullpointer, ou rode sua aplicação em modo debug e coloque um breaking point para vc ir acompanhando.

Bons estudos.

sim, eu fiz o debug…
Mas não sei se é a cabeça que tá ruim mas não consigo achar o problema.
No caso eu declarei o tabuleiro, e declarei os vetores, mas parece que o tabuleiro em si não existe, a instancia, e eu nao consigo achar um meio de criar, eu usei o método do construtor mas mesmo assim, parece que o tabuleiro em si não foi criado…

atenção, quando criar tópico crie de acordo com erro que está acontecendo no seu codigo.

[quote=lolitosa]sim, eu fiz o debug…
Mas não sei se é a cabeça que tá ruim mas não consigo achar o problema.
No caso eu declarei o tabuleiro, e declarei os vetores, mas parece que o tabuleiro em si não existe, a instancia, e eu nao consigo achar um meio de criar, eu usei o método do construtor mas mesmo assim, parece que o tabuleiro em si não foi criado…[/quote]

Sem codigo de erro fica complicado te ajudar,
Cola ai o erro e tua classe na integra usando as tags code ai de cima.

Exception in thread “main” java.lang.NullPointerException
at jogodavelha2.tabuleiro.print(tabuleiro.java:82)
at jogodavelha2.Jogodavelha2.main(Jogodavelha2.java:29)
Java Result: 1

public static void main(String[] args) {
        
        Peca p1 = new Peca("X");
        Peca p2 = new Peca("O");
        tabuleiro tab = new tabuleiro(3, 3);
        tab.setPeca(1, 2, p2);
        JOptionPane.showMessageDialog(null, tab.print());
        
        
    }

[code]public class tabuleiro {

private int linha;
private int coluna;
private Peca[] linha0;
private Peca[] linha1;
private Peca[] linha2;

public tabuleiro(int l, int c){

    linha = l;
    coluna = c;
    linha0 = new Peca[c];
    linha1 = new Peca[c];
    linha2 = new Peca[c];

}

public boolean setPeca(int l, int c, Peca p){
    
   boolean retorno = false;
   if(l == 1) {
    linha0[c-1] = p;
    retorno = true;
   }
   if(l == 2) {
    linha1[c-1] = p;
    retorno = true;
   }
    if(l == 3) {
    linha2[c-1] = p;
    retorno = true;
    }
    
   return retorno;
 
}

public Peca getPeca(int l, int c){

   Peca peca = null; 
   if(l == 1) {
    peca = linha0[c-1];
   }
   if(l == 2) {
    peca = linha1[c-1];
   }
   if(l == 3) {
    peca = linha2[c-1];   
   }
   
   return peca;

}

public String getError(){

    String errormessage = "";
    errormessage.equals("Erro. O tabuleiro não deve ter mais de 9 espaços.");
    
    return errormessage;

}

public String print() {

   String temp = "";
   int c = 0;
   this.coluna = c;
   
     for (c = 1; c <= 3; c++) {
         if (linha0[c-1].equals("")) {
            temp = temp + c;
         } else{
            temp = temp + linha0[c-1]; 
         } 
         
         if((c==1)||(c==2)) {
             temp = temp + "|";
         } else{
             temp = temp + "\n";
         }
         
    }

return temp;

}[/code]

Não tenha medo de ler uma mensagem de erro.

A sua mensagem de erro diz:[quote]Exception in thread “main” java.lang.NullPointerException
at jogodavelha2.tabuleiro.print(tabuleiro.java:82) <================== [/quote]
Note que ele aponta onde está o erro e em qual arquivo.

Abra seu arquivo tabuleiro na linha 82 (que não é a mesma que você colou aqui) e veja o que está null.

Ah, está dando .equals() em tipos incompatíveis…
Como posso resolver isso?
no caso, eu tenho uma classe peça que guarda uma string dentro.
pra imprimir o tabuleiro, fiz a função usando equals.
ps: o meu professor passou a base dessa parte do código na sala de aula…

[code] public String print() {

   String temp = "";
   int c = 1;
   this.coluna = c;
   
     for (c = 1; c <= 3; c++) {
         if (linha0[c-1].equals("")) {
            temp = temp + c;
         } [/code]

Nao seria porque voce quer comparar um objeto PECA com uma STRING, que sao 2 tipos diferentes ?

sim, mas dentro da peça tem uma string…

no caso, linha0[0] é uma peça, mas corresponde a “X”, por exemplo…

Eu preciso da comparação para desenhar o tabuleiro, como posso resolver isso?

Mostre sua classe Peca.

opa opa opa
descobri o erro!
colei aqui e veio uma luz na cabeça ahahaa
era só colocar linha0[c-1].getTipo()

[code]public class Peca {

private String tipo;

public Peca(String t){
tipo = t;
}

public String getTipo(){

return tipo;
}

public void setTipo(String tipo1){

tipo = tipo1;
}

}[/code]

engraçado que continua dando erro na mesma linha naquela parte do null pointer exception, mas o erro de comparação de tipos sumiu

Estranho, no construtor da sua classe Peca voce passa como parametro uma String, mas na inicializacao da linha0 voce da um new Peca©, mas c é um tipo int, 2 tipos diferentes certo ?

[code]
public tabuleiro(int l, int c){

    linha = l;  
    coluna = c;  
    linha0 = new Peca[c];  
    linha1 = new Peca[c];  
    linha2 = new Peca[c];  
  
}  

[quote]

sim, pois no caso, o tabuleiro é um vetor de peças.
Não estou mexendo com matriz então tenho 3 vetores (linhas) então fica algo como linha0[c] e no caso c é o numero de colunas.

é fácim fazer,
tenho pronto tbm

http://javaaberto.blogspot.com.br/search/label/Codigo%20Fonte%20SE

Obs.: Nao entregue esse, apenas estude o codigo fonte e implemente no seu trabalho…

mas ainda nao consigo entender fontes assim, meu java é bem básico…