Problemas entre classes

1 resposta
R

Ao criar a classe PalavraOculta, criei um metodo chamado ManipulaLetra(), que tem a função de imprimir um traço para cada posição da palavra escolhida aleatória. O problema é que a palavra é de outra classe e ao importar as outras classe ocorre um erro porque as palavras estão em um vetor e não consigo manipulalas, ou seja, chama-las na classe PalavraOculta().

[

package br.pucpr.bsi.prog2.forca;

public class Palavra

{

private String letra;

private String palavra;

private String pistas1;

private String pistas2;

public Palavra(String palavra)

{

setPistas1(pistas1);

setPistas2(pistas2);

setPalavra(palavra);
}
public void setPalavra(String palavra)
{
	if(palavra==null)
	{
		throw new IllegalArgumentException("");
	}
	if(palavra.trim().equals(""))
	{
		throw new IllegalArgumentException("");
	}
	this.palavra= palavra;
}

public String getPalavra()
{
	return palavra;
}

public void setLetra(String letra)
{
	if(letra==null)
	{
		throw new IllegalArgumentException("");
	}
	if(letra.trim().equals(""))
	{
		throw new IllegalArgumentException("");
	}
	this.letra= letra;
}

public String getLetra()
{
	return letra;
}	

///****************PISTA 1


public void setPistas1(String pistas1)
{
	if(pistas1==null)
	{
		throw new IllegalArgumentException("");
	}
	if(pistas1.trim().equals(""))
	{
		throw new IllegalArgumentException("");
	}
	this.pistas1= pistas1;
}

public String getPistas1()
{
	return pistas1;
}

///*******************PISTA 2


public void setPistas2(String pistas2)
{
	if(pistas2==null)
	{
		throw new IllegalArgumentException("");
	}
	if(pistas2.trim().equals(""))
	{
		throw new IllegalArgumentException("");
	}
	this.pistas2= pistas2;
}

public String getPistas2()
{
	return pistas2;
}

}
]

[  package br.pucpr.bsi.prog2.forca;

import br.pucpr.bsi.prog2.forca.Palavra;

import java.util.*;
public class ManipulaPalavra

{

private Vector data;

public  ManipulaPalavra()

{

data= new Vector();

}

public void adicionaPalavra(Palavra p)

{

if(p==null)

{

throw new NullPointerException ("");

}

data.add§;

}

public Palavra[] getPalavra()

{

Palavra[]aux= new Palavra[data.size()];

for(int i=0; i<data.size();i++)

{

aux[i]= (Palavra) data.elementAt(i);
}
	return aux;
}
public Palavra findByPalavra(String palavra)
{
	if(palavra == null)
	{
		throw new NullPointerException();
	}
	if(palavra.trim().equals(""))
	{
		throw new IllegalArgumentException();
	}
	Palavra aux;
	
	for(int i=0; i&lt; data.size();i++)
	{
		aux =(Palavra) data.elementAt(i);
		
		if(aux.getPalavra().equals(palavra))
		{
			return aux;
		}
		
	}
	return null;
	
}

}

]
[  import br.pucpr.bsi.prog2.forca.Palavra;

import br.pucpr.bsi.prog2.forca.ManipulaPalavra;

import java.util.Vector;

public class PalavraOculta
{
/**
* Este metodo tem a função de ao ser
* encontrado a palavra aleatoriamenete
* e imprimir em cada letra da palavra
* escolhida um simbolo " _" para representar
* o lugar do caracter a ser procurado.
*/

public static void ManipulaLetra()
{
	
	
		
	int temEspaco;
	String[]   vetControle  = new String[ 26 ];
	
	
	char ch, chAux,chAux1;
	String[] letra  = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
	String[] letra1 = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
	
	
	for(int i=0;i&lt;palavra;i++)
	{
		ch= palavra.charAt(i);
		for(int j=0;j&lt;=25;j++)
		{
			
			chAux= letra[j].charAt(0);
			chAux1= letra1[j].charAt(0);
			
			if ( ( ch == chAux ) || ( ch == chAux1 ) )
          	{
            	if ( vetControle[ j ].equalsIgnoreCase("O") )
              	System.out.print(" "+ch+" ");
            	else
            	{
              		System.out.print(" - ");
              		temEspaco++;
            	}
          	}
        }
    }
    
}

}
]

1 Resposta

cancao

Não entendi bem sua duvida, afinal, para recupar um palavra do Vector basta usar o get (ou elementAt) e fazer o cast. Isso vc já está fazendo e há um metodo para retornar a lista de palavras num array. Use esse metodo onde achar conveniente e itere sobre esse array para tratar as palavras. Apenas uma obs: o metodo

public Palavra[] getPalavra()
{
  Palavra[]aux= new Palavra[data.size()];
  for(int i=0; i<data.size();i++)
  {
     aux[i]= (Palavra) data.elementAt(i);
  }
  return aux;
}

Pode ser escrito assim:

public Palavra[] getPalavra()
{
  Palavra[] aux= (Palavra[])data.toArray();
  return aux;
}

Uma outra dica é usar as tags e para dar mais legibilidade aos seus codigos quando posta-los no forum.

Até.

Criado 23 de novembro de 2003
Ultima resposta 23 de nov. de 2003
Respostas 1
Participantes 2