Alterando um vetor

6 respostas
M

Olá pessoal, estou com um problema:

Criei um vetor e o chamo da seguinte forma:

for (int i = 0; i < num; i++) {
			
			Object bolinha = new Bolinha(10,10);
			listaBolinhas.addElement(bolinha);	
		}

onde depois uso o paint e consigo desenhar várias bolinhas. O problema é que gostaria de alterar esse num dentro do programa, ao inves de deixá-lo fixo, mas nesse caso não funciona.

Alguem tem ideia de como resolver isso?

Abraço,

Marcelo.

6 Respostas

davidbuzatto

De onde viria o num?

Allan_Barcelos

olha cara não entendi a tua duvida, mais se tu fala do num do parametro do for, tu cria outro for, ou cria um método que recebe como parametro um número que tu quer que teu for va, por exemplo:

public void lista(int num){ for(int i = 0; i &lt; num;i++){ Object bolinha = new Bolinha(10,10); listaBolinhas.addElement(bolinha); } }

Ou então alterar o número de bolinhas:

public Vector lista(int num){ Vector v = new Vector(1,1); for(int i = 0; i &lt; num;i++){ Object bolinha = new Bolinha(10,10); v.add(bolinha); } return v; } que se tu quizer alterar o teu vector principal tu pode faz isso atravez da chamada desse método.

M

Sim, era exatamente isso que preciso, aumentar a quantidade no for. O problema que quando defino um dispositivo para aumentar o num, o vetor não é mais criado. Quando o num é definido já dentro do programa, por exemplo num =10;, ele funciona. O que pode estar errado?

Allan_Barcelos
if(num &gt; 0){
//Coloca o for aqui dentro
}
else
JOptionPane.showMessageDialog(null, "O número é menor que 0", "Erro!, JOptionPane.ERRORMESSAGE);
M

Consegui acrescentar bolinhas da seguinte forma:

if (listaBolinhas.size() <= num) {
                     	
                     	for (int i = 0; i < num; i++) {
			
					   Object bolinha = new Bolinha(10,10);
					   listaBolinhas.addElement(bolinha);	
															   }
                     	}

Agora para reduzir as bolinhas, como remover os elementos? Ao diminuir o num, a lista já foi preenchida e as bolinhas não diminuem.

Abraço.

Allan_Barcelos

É a mesma ideia, quando for reduzir, só faz dai o remove(index) do Vector, no caso:

for(int i = 0; i &lt; num; i++){
 listaBolinhas.remove(i); // ira remover o objeto do index 0, 1, 2, ... até o num, seria bom verificar se o num não é maior que o tamanho do vector
}

Ou então o remove(objetct)

public void removeObjeto(Object o){
boolean removed;
removed = listaBolinhas.remove(o);
if(removed == true)
JOptionPane.showMessageDialog(null, "Removido com sucesso", "Sucesso!", JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null, "Objeto não encontrado", "Erro!", JOptionPane.ERROR_MESSAGE);
}
Criado 30 de maio de 2010
Ultima resposta 2 de jun. de 2010
Respostas 6
Participantes 3