Duvidas com ArrayList.contains()

Java

18/01/2012

Bom dia galera, seguinte, estou fazendo um projeto para um amigo e como nao tenho muita experiência na linguagem espero tirar algumas dúvidas. Uma dessas duvidas é: como posso acessar um item no ArrayList? No código abaixo eu cadastrei alguns produtos que conteem nome, preço, quantidade e tamanho, porém na hora de excluir algum deles não consegui, segue o código:
public static void remove(ArrayList<String>lista, Capacete cp){
		exibe(lista, cp);
		String nm="";
		
		nm=JOptionPane.showInputDialog("Digite o nome do produto a ser retirado: ");
		
		for(int i=0; i<lista.size(); i++){
			if(lista.contains(nm)){
				JOptionPane.showMessageDialog(null, "Item "+lista.get(i)+" foi deletado com sucesso.");
				lista.remove(i);
			}//if
		}//for
		
		
	}//remove
agradeço a ajuda! abraços!
Leonardo Narciso

Leonardo Narciso

Curtidas 0

Respostas

Lucas Iorio

Lucas Iorio

18/01/2012

Estou com sono, mas quando faz CONTAINS ele usa o EQUALS, ele não sabe diferenciar o CAPACETE !! Você terá que sobrescrever o EQUALS da classe Capacete, de uma forma que consiga identificar o item !
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="lucas iorio"]Estou com sono, mas quando faz CONTAINS ele usa o EQUALS, ele não sabe diferenciar o CAPACETE !! Você terá que sobrescrever o EQUALS da classe Capacete, de uma forma que consiga identificar o item !
é isso mesmo. Contains só vai retornar o indice se para dois objetos, um na lista A e outro fora dele B
A.equals(B) //seja true
//&&
B.equals(A) //seja true também
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

e como faço para excluir uma parte do objeto(contendo nome, tamanho, preço e quantidade), de uma so vez? Confesso que comecei a ver java a pouco tempo e nao tenho tanta experiencia na linguagem.
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

O item CAPACETE deveria ter um ID de identificação, mas posta seu código do CAPACETE que tento te ajudar...
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="LeoNarciso"]e como faço para excluir uma parte do objeto(contendo nome, tamanho, preço e quantidade), de uma so vez? Confesso que comecei a ver java a pouco tempo e nao tenho tanta experiencia na linguagem.
Como excluir uma parte do objeto??? não tem como excluir "parte", ou você exclui ou não!
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
for(int i=0;i<lista.size();i++){
            if(lista.get(i).contains(nm)){//pega a string na lista e verifica se nm está condida nela
                JOptionPane.showMessageDialog(null, "Item "+lista.get(i)+" foi deletado com sucesso.");
                lista.remove(i);
            }
        }
Penso que deste modo vai fazer o que queres. altera o teu loop e da uma dica para eu saber se funcionou
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="Chandimba"]«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
for(int i=0;i<lista.size();i++){
            if(lista.get(i).contains(nm)){//pega a string na lista e verifica se nm está condida nela
                JOptionPane.showMessageDialog(null, "Item "+lista.get(i)+" foi deletado com sucesso.");
                lista.remove(i);
            }
        }
Penso que deste modo vai fazer o que queres. altera o teu loop e da uma dica para eu saber se funcionou
note que o [url=http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#contains(java.lang.Object)]contains() da ArrayList[/url] e o [url=http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#contains(java.lang.CharSequence)]constains() de String [/url] não tem nada a ver uma coisa com a outra. Se bem que, até agora eu não entendi o que o capacete tem a ver com a história, eu no inicio pensei que era um ArrayList<Capacete> mas agora percebi que na verdade é um ArrayList<String> então não entendi mais nada.
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="sekkuar"][quote="LeoNarciso"]e como faço para excluir uma parte do objeto(contendo nome, tamanho, preço e quantidade), de uma so vez? Confesso que comecei a ver java a pouco tempo e nao tenho tanta experiencia na linguagem.
Como excluir uma parte do objeto??? não tem como excluir "parte", ou você exclui ou não!
O maior problema é entender o código postado !! Ele pegou um arraylist de string e passou um Capacete sozinho, pelo que entendi ele quer excluir o capacete da lista de acordo com o que o usuario digitar de descricao : Mas teria que mudar o parâmetro do método dele De
ArrayList<String>lista, Capacete cp
Para
ArrayList<Capacete>lista
Seria mais ou menos isso
package com.byiorio;

import java.util.ArrayList;

public class LojaCapacete {
	
	
	public static void main(String[] args) {
		ArrayList<Capacete> lista = new ArrayList<Capacete>();
		lista.add(new Capacete("descr1",2d));
		lista.add(new Capacete("descr2",2d));
		lista.add(new Capacete("descr3",2d));
		lista.add(new Capacete("descr4",2d));
		
		//item a ser removido
		String apagar="descr1";
		
		//apagando
		for (Capacete capacete : lista) {
			if (apagar.equals(capacete.getDescricao())){
				lista.remove(capacete);
				break;
			}
		}
		
		
		//listando
		for (Capacete capacete : lista) {
			System.out.println(capacete.getDescricao());
		}
		
	}
	
}

class Capacete {
	String descricao;
	double preco;

	public Capacete(String descricao, double preco){
		this.descricao = descricao;
		this.preco = preco;
	}
	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public double getPreco() {
		return preco;
	}

	public void setPreco(double preco) {
		this.preco = preco;
	}

}
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

Me expressei errado quando disse que queria deletar o capacete, ao invés de deletar o capacete, queria deletar a parte da lista que contem o nome da busca. simples, voce digita o nome do produto e se ele existir, ele é deletado da lista. segue o código completo:
package NetoCapacetes_POO_Package;

import java.util.ArrayList;

import javax.swing.JOptionPane;


public class PrincipalNetoCapacete {

	
	public static void main(String args[]){
		ArrayList<String> lista = new ArrayList<String>();
		Capacete cp=new Capacete();
		
		
		menu(lista, cp);
		
	}//main
	
	private static void menu(ArrayList<String> lista, Capacete cp){
		int opc;
		String opçãostring;
		int repetir=1;
		
		while(repetir==1){
		opçãostring=JOptionPane.showInputDialog(
		    "* * * * *     EBF CAPACETES     * * * * *\n" + 
		    "\n" + 
		    "-----     MENU     -----\n" + 
		    "1 - CADASTRO DE PRODUTOS\n" + 
		    "2 - RETIRADA DE PRODUTOS\n" + 
		    "3 - ESTOQUE GERAL\n" + 
		    "4 - EXIBIR PRODUTOS CADASTRADOS\n" + 
		    "\n" + 
		    "DIGITE O NUMERO REFERENTE A OPÇÃO DESEJADA: ");
		opc=Integer.parseInt(opçãostring);//pegando a string e convertendo o valor para inteiro.
		
		if(opc==1){
			cadastro(lista, cp);
		}//opc==1
		
		if(opc==2){
			remove(lista, cp);
		}//opc==2
		
		if(opc==4){
			exibe(lista,cp);
		}//opc==4
		}//while
	}//menu
	
	
	public static void cadastro(ArrayList<String> lista, Capacete cp){
		cp.nome=JOptionPane.showInputDialog("Digite o nome do produto: ");
		lista.add(cp.nome);
		cp.quantidade=JOptionPane.showInputDialog("Digite a quantidade de itens do produto "+cp.nome+":");
		lista.add(cp.quantidade);
		cp.tamanho=JOptionPane.showInputDialog("Digite o tamanho do produto "+cp.nome+":");
		lista.add(cp.tamanho);
		cp.preco=JOptionPane.showInputDialog("Digite o preço do produto "+cp.nome+":");
		lista.add(cp.preco);
		
		System.out.println(lista.size());
		}//cadastro	
	
	
	public static void remove(ArrayList<String>lista, Capacete cp){
		exibe(lista, cp);
		String nm="";
		
		nm=JOptionPane.showInputDialog("Digite o nome do produto a ser retirado: ");
		
		for(int i=0; i<lista.size(); i++){
			 if(lista.get(i).equals(cp.getNome())){
				JOptionPane.showMessageDialog(null, "Item "+lista.get(i)+" foi deletado com sucesso.");
				lista.remove(i);
			}//if
		}//for
		
		
	}//remove
	
	public static void exibe(ArrayList<String> lista, Capacete cp){
		
		
			JOptionPane.showMessageDialog(null, lista);
		
	
	}//exibe
	
	
	
	
}//principalnetocapacetes

[quote="[color=darkgreen][i]2012-01-21[/i] mensagem editada por [i][url=http://javafree.uol.com.br/viewprofile.jbb?u=5274]simu[/url][/i][/color]"][color=green] - quebra de linha uito longas no código. [/color]
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

putz cara... mas que código é esse?? nuss. Nem tenho palavras para me expressar sem levar um processo por danos morais...
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="sekkuar"]putz cara... mas que código é esse?? nuss. Nem tenho palavras para me expressar sem levar um processo por danos morais...
confesso que não entendi =/ :amigos:
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="lucas iorio"][quote="sekkuar"]putz cara... mas que código é esse?? nuss. Nem tenho palavras para me expressar sem levar um processo por danos morais...
confesso que não entendi =/ :amigos:
Tah. primeiro, a classe dele tem uma unica instancia de Capacete que é reutilizada mas nunca é salva em lugar algum. Ele tem uma lista de Strings que, não salvam apenas um tipo de informação, ela grava todas as informações dos capacetes, sequencialmente (igual porta serial?), valores de tipos diferentes, mas todos como String. Depois, ele quer apagar o nome do capacete, mas, de alguma forma milagrosa, quer que todas as informações daquele capacete sejam apagadas também, sendo que na lista, elas não estão relacionadas de forma alguma. PS: lucas iorio, o seu código está certo e bonito, estou me referindo ao código do dono do tópico. (as vezes os posts demoram pra aparecer no fórum, cache de navegador ou algo assim)
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

[quote="sekkuar"]putz cara... mas que código é esse?? nuss. Nem tenho palavras para me expressar sem levar um processo por danos morais...
umas das primeiras coisas que eu falei nesse tópico e chamei a atenção é a falta de conhecimento na linguagem, estou aqui para tirar dúvidas e aprender, ok?
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="sekkuar"][quote="lucas iorio"][quote="sekkuar"]putz cara... mas que código é esse?? nuss. Nem tenho palavras para me expressar sem levar um processo por danos morais...
confesso que não entendi =/ :amigos:
Tah. primeiro, a classe dele tem uma unica instancia de Capacete que é reutilizada mas nunca é salva em lugar algum. Ele tem uma lista de Strings que, não salvam apenas um tipo de informação, ela grava todas as informações dos capacetes, sequencialmente (igual porta serial?), valores de tipos diferentes, mas todos como String. Depois, ele quer apagar o nome do capacete, mas, de alguma forma milagrosa, quer que todas as informações daquele capacete sejam apagadas também, sendo que na lista, elas não estão relacionadas de forma alguma. PS: lucas iorio, o seu código está certo e bonito, estou me referindo ao código do dono do tópico. (as vezes os posts demoram pra aparecer no fórum, cache de navegador ou algo assim) Calmmaa =] eu falei concordando com voce, eu nao entendi o codigo dele aeuhaeuhea !! Se ele nao quer apagar o capacete pq ele compara o capacete com o produto ? Em casa eu teria que rodar o codigo e ver o que acontecesse !!Pq olhando nao entendi
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

[quote="lucas iorio"] Em casa eu teria que rodar o codigo e ver o que acontecesse !!Pq olhando nao entendi
Ele vai vai apagar só o "nome" do capacete na lista, e vai deixar os outros atributos nela.
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

exato, quero saber como faço para adicionar a cada posicao da lista, um capacete e o mesmo para remoção
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

a variavel NM recebe algo e logo abaixo ele compara com getNome
 nm=JOptionPane.showInputDialog("Digite o nome do produto a ser retirado: ");  
        
      for(int i=0; i<lista.size(); i++){  
          if(lista.get(i).equals(cp.getNome())
Se voce colocar a variavel NM no lugar?
 nm=JOptionPane.showInputDialog("Digite o nome do produto a ser retirado: ");  
        
      for(int i=0; i<lista.size(); i++){  
          if(lista.get(i).equals(nm)
Mas assim o codigo tem que ser revisto, em casa vou tentar rodar ele =]
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="LeoNarciso"]exato, quero saber como faço para adicionar a cada posicao da lista, um capacete e o mesmo para remoção
Para de me confundirrr :assusta: Para adicionar e remover um capacete na lista foi o codigo que postei :cry:
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

[quote="lucas iorio"][quote="LeoNarciso"]exato, quero saber como faço para adicionar a cada posicao da lista, um capacete e o mesmo para remoção
Para de me confundirrr :assusta: Para adicionar e remover um capacete na lista foi o codigo que postei :cry:
teu código ta perfeito rs, mas o problema é comigo mesmo, nao sei passar a lista por parâmetro rs.
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

Tem um monte de gente com problema para entender um ArrayList de Beans Hoje a noite em casa farei alguma coisa explicando isso.... Quando voce entender como funciona ArrayList de Beans acredito que fara sozinho essa melhoria...
GOSTEI 0
Lucas Iorio

Lucas Iorio

18/01/2012

beleza, aguardo a ajuda aí, obrigado!!
GOSTEI 0
Murilo Lopes

Murilo Lopes

18/01/2012

public void apagar(){
		System.out.println("Digite o nome que deseja apagar:");  
	    String nome = scanner.nextLine();
	    for (Pessoa p : pessoas)
	    	if(p.getNome().equals(nome)){  
	            pessoas.remove(p);
	            break;
	    	}
		System.out.println("Cadastro apagado com sucesso!");
		msgVoltar();
	}
Olha aqui cara, esse pedaço aqui funfa 100%, é só você pensar um pouco no que você está vendo aqui e passar pro seu!
GOSTEI 0
Murilo Lopes

Murilo Lopes

18/01/2012

consegui resolver todos os meus problemas, ainda vou fazer algumas alterações .
GOSTEI 0
Murilo Lopes

Murilo Lopes

18/01/2012

Qual era o problema?
GOSTEI 0
Murilo Lopes

Murilo Lopes

18/01/2012

[quote="Murilo Lilo"]Qual era o problema?
falta de conhecimento na linguagem mesmo haha ----------------------------------------------------------------------- Tenho outra dúvida, como faço pra colocar uma barra de rolagem vertical na exibição da lista?
GOSTEI 0
Murilo Lopes

Murilo Lopes

18/01/2012

Gostaria de exibir a lista dos produtos em uma janela separada, com barra de rolagem e botão para fechar a janela, fora do JOptionPane e até criei a janela, só que nao consigo exibir a lista nela:
public static void exibe(ArrayList<Capacete> lista){		
		
		JScrollPane scrollpane = new JScrollPane();//criação da barra de rolagem
		JFrame janela = new JFrame("PRODUTOS CADASTRADOS!");
		
		scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);//never cancela a barra de rolagem horizontal
		scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//define a política de utilização da barra de rolagem vertical
		
		janela.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
		janela.setSize(500, 690);
		janela.setVisible(true);
		
		JOptionPane.showMessageDialog(null, lista,"Lista de produtos cadastrados!",JOptionPane.INFORMATION_MESSAGE);
		
		
		
	}//exibe
como faço para colocar a lista, a barra de rolagem e o botão dentro da janela externa?
GOSTEI 0
Nelson Silva

Nelson Silva

18/01/2012

----------------------------------------------------------------------------------------- A pressa é inimiga da perfeição, estuda e aprende uma coisa de cada vez... Se POO vc tem dificuldade como queres já aprender Swing(aplicações gráficas)? Vai com calma e irás longe. -----------------------------------------------------------------------------------------
GOSTEI 0
Murilo Lopes

Murilo Lopes

18/01/2012

[quote="Chandimba"]----------------------------------------------------------------------------------------- A pressa é inimiga da perfeição, estuda e aprende uma coisa de cada vez... Se POO vc tem dificuldade como queres já aprender Swing(aplicações gráficas)? Vai com calma e irás longe. -----------------------------------------------------------------------------------------
to fazendo pra ajudar um amigo. :mrgreen:
GOSTEI 0
André Pereira

André Pereira

18/01/2012

[quote="LeoNarciso"][quote="Chandimba"]----------------------------------------------------------------------------------------- A pressa é inimiga da perfeição, estuda e aprende uma coisa de cada vez... Se POO vc tem dificuldade como queres já aprender Swing(aplicações gráficas)? Vai com calma e irás longe. -----------------------------------------------------------------------------------------
to fazendo pra ajudar um amigo. :mrgreen:
Vc tem que criar um JComboBox, ou um JList, ou uma JTable. Mas é como o amigo ai em cima disse, se vc teve dificuldades com ArrayList, imagine com Swing!!!!
GOSTEI 0
Murilo ângelo

Murilo ângelo

18/01/2012

[quote="D3z40"][quote="LeoNarciso"][quote="Chandimba"]----------------------------------------------------------------------------------------- A pressa é inimiga da perfeição, estuda e aprende uma coisa de cada vez... Se POO vc tem dificuldade como queres já aprender Swing(aplicações gráficas)? Vai com calma e irás longe. -----------------------------------------------------------------------------------------
to fazendo pra ajudar um amigo. :mrgreen:
Vc tem que criar um JComboBox, ou um JList, ou uma JTable. Mas é como o amigo ai em cima disse, se vc teve dificuldades com ArrayList, imagine com Swing!!!! Sim, são coisas que nunca vi nem como é a sintaxe, mas acredito que pra esse problema exista uma solução não tão complicada, o problema é que não sei fazer rs.
GOSTEI 0
André Pereira

André Pereira

18/01/2012

[quote="LeoNarciso"][quote="D3z40"][quote="LeoNarciso"][quote="Chandimba"]----------------------------------------------------------------------------------------- A pressa é inimiga da perfeição, estuda e aprende uma coisa de cada vez... Se POO vc tem dificuldade como queres já aprender Swing(aplicações gráficas)? Vai com calma e irás longe. -----------------------------------------------------------------------------------------
to fazendo pra ajudar um amigo. :mrgreen:
Vc tem que criar um JComboBox, ou um JList, ou uma JTable. Mas é como o amigo ai em cima disse, se vc teve dificuldades com ArrayList, imagine com Swing!!!! Sim, são coisas que nunca vi nem como é a sintaxe, mas acredito que pra esse problema exista uma solução não tão complicada, o problema é que não sei fazer rs. Então fica dificil... eu sinceramente não estou com vontade de fazer pra vc. Mas vc pode pesquisar na net como fazer, e com surgimento de duvidas pode ir postando que iremos lhe ajudando, mas fazer pra vc... acho dificil encontrar alguem afim...
GOSTEI 0
Murilo Lopes

Murilo Lopes

18/01/2012

[quote="D3z40"][quote="LeoNarciso"][quote="D3z40"][quote="LeoNarciso"][quote="Chandimba"]----------------------------------------------------------------------------------------- A pressa é inimiga da perfeição, estuda e aprende uma coisa de cada vez... Se POO vc tem dificuldade como queres já aprender Swing(aplicações gráficas)? Vai com calma e irás longe. -----------------------------------------------------------------------------------------
to fazendo pra ajudar um amigo. :mrgreen:
Vc tem que criar um JComboBox, ou um JList, ou uma JTable. Mas é como o amigo ai em cima disse, se vc teve dificuldades com ArrayList, imagine com Swing!!!! Sim, são coisas que nunca vi nem como é a sintaxe, mas acredito que pra esse problema exista uma solução não tão complicada, o problema é que não sei fazer rs. Então fica dificil... eu sinceramente não estou com vontade de fazer pra vc. Mas vc pode pesquisar na net como fazer, e com surgimento de duvidas pode ir postando que iremos lhe ajudando, mas fazer pra vc... acho dificil encontrar alguem afim... mas eu nao quero que façam pra mim, quero aprender a fazer rs, eu consegui exibir o JFrame, mas nao consegui exibir a lista e nem a barra de rolagem
GOSTEI 0
Murilo ângelo

Murilo ângelo

18/01/2012

[quote="LeoNarciso"]Gostaria de exibir a lista dos produtos em uma janela separada, com barra de rolagem e botão para fechar a janela, fora do JOptionPane e até criei a janela, só que nao consigo exibir a lista nela:
public static void exibe(ArrayList<Capacete> lista){		
		
		JScrollPane scrollpane = new JScrollPane();//criação da barra de rolagem
		JFrame janela = new JFrame("PRODUTOS CADASTRADOS!");
		
		scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);//never cancela a barra de rolagem horizontal
		scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//define a política de utilização da barra de rolagem vertical
		
		janela.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
		janela.setSize(500, 690);
		janela.setVisible(true);
		
		JOptionPane.showMessageDialog(null, lista,"Lista de produtos cadastrados!",JOptionPane.INFORMATION_MESSAGE);
		
		
		
	}//exibe
como faço para colocar a lista, a barra de rolagem e o botão dentro da janela externa?
bom, vou fazer só porque é para ajudar um amigo seu! [;-[b][/b]) Assumindo que a classe Capacete tem um método [url="http://javafree.uol.com.br/artigo/884104/Representacao-textual-de-objetos-metodo-toString.html"][u]toString[/u][/url] correto, ficaria assim:
    public static void exibe(ArrayList<Capacete> lista){            
        JList<Capacete> list = new JList<>(new Vector<>(lista));
        
        JScrollPane scrollpane = new JScrollPane(list);
        scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

        JFrame janela = new JFrame("PRODUTOS CADASTRADOS!");
        janela.add(scrollpane);
        janela.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);  // não terminar a máquina virtual
        janela.setSize(500, 690);
        janela.validate();
        janela.setVisible(true);
    }
                    [size=11][i](testado para [b]Java 7[/b])[/i][/size] Essa é a forma mais simples... um pouco melhor, usando um [color=blue]ListCellRenderer[/color] próprio para mostrar as instâncias de Capacete. [[]] [b]EDIT:[/b] para versão anterior a Java 7:
    public static void exibe(ArrayList<Capacete> lista){            
        JList list = new JList(new Vector<Capacete>(lista));
        
        JScrollPane scrollpane = new JScrollPane(list);
        ...
GOSTEI 0
Murilo Lopes

Murilo Lopes

18/01/2012

JList<Capacete> list = new JList<>(new Vector<>(lista));
essa parte ta correta? aqui apresentou um erro.
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

[quote="LeoNarciso"]
JList<Capacete> list = new JList<>(new Vector<>(lista));
[img]http://javafree.uol.com.br/files_user/files/B/13/95/lists.jpg[/img]
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

[quote="LeoNarciso"]
JList<Capacete> list = new JList<>(new Vector<>(lista));
essa parte ta correta? aqui apresentou um erro.
um erro? a pergunta de sempre: [b]QUAL erro? QUAL a mensagem?[/b] [size=10]será que é tão difícil entender que a mensagem de erro é uma das principais fontes de informação para resolver o erro?[/size] chuto que está compilando para versão anterior a Java 7, então tente:
JList<Capacete> list = new JList<Capacete>(new Vector<Capacete>(lista));
GOSTEI 0
Leonardo Narciso

Leonardo Narciso

18/01/2012

mensagem de erro é essa: Exception in thread "main" java.lang.Error: Unresolved compilation problems: The type JList is not generic; it cannot be parameterized with arguments <Capacete> The type JList is not generic; it cannot be parameterized with arguments <Capacete> e continuou aparecendo com esse código acima. :neutral:
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

[quote="LeoNarciso"]mensagem de erro é essa: Exception in thread "main" java.lang.Error: Unresolved compilation problems: The type JList is not generic; it cannot be parameterized with arguments <Capacete> The type JList is not generic; it cannot be parameterized with arguments <Capacete> e continuou aparecendo com esse código acima. :neutral:
droga esqueci que o JList só aceita generics a partir do Java 7! mas com certeza não vou voltar atrás e usar uma versão velha do Java (só para fazer programa alheio) mas você também poderia tentar concertar, ou? se o erro diz que o JList não aceita tipo genérico, então remova o tipo genérico - temos que fazer tudo para o seu amigo? [i]O que escrevi na minha assinatura sobre o fórum ser a melhor IDE, era para ser piada (sarcástico)![/i]
JList list = new JList(new Vector<Capacete>(lista));
e, se seu amigo estiver usando uma versão mais velha ainda, tente:
JList list = new JList(new Vector(lista));
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

[quote="simu"] e, se seu amigo estiver usando uma versão mais velha ainda, tente:
JList list = new JList(new Vector(lista));
E se ele estiver usando uma versão tão velha que não tem Swing?
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

[quote="sekkuar"][quote="simu"] e, se seu amigo estiver usando uma versão mais velha ainda, tente:
JList list = new JList(new Vector(lista));
E se ele estiver usando uma versão tão velha que não tem Swing?
Não é o caso - pelo menos no primeiro código ele usou um JOptionPane (e um ArrayList com generics [img]http://javafree.uol.com.br/forum/images/smiles/whoa.gif[/img] )
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

[quote="simu"][quote="sekkuar"][quote="simu"] e, se seu amigo estiver usando uma versão mais velha ainda, tente:
JList list = new JList(new Vector(lista));
E se ele estiver usando uma versão tão velha que não tem Swing?
Não é o caso - pelo menos no primeiro código ele usou um JOptionPane (e um ArrayList com generics [img]http://javafree.uol.com.br/forum/images/smiles/whoa.gif[/img] ) Vai ver, pra ele funciona, mas na casa do amigo dele não. [img]http://javafree.uol.com.br/forum/images/smiles/hauhau.gif[/img]
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

SIMU, esse aqui funcionou perfeitamente
JList list = new JList(new Vector<Capacete>(lista));
MUITO OBRIGADO!
GOSTEI 0
Douglas Eric

Douglas Eric

18/01/2012

Opa, boa noite, venho aqui tirar outra dúvida. criei um botão de OK para ficar no frame da exibição, gostaria de 'travar' a aplicação no item de exibição até que o usuário aperte o botão OK ou feche a janela, segue o código:
public void actionPerformed(ActionEvent e){
		
if (e.getSource()==botao1){	
	cadastro();
}//botao1

if(e.getSource()==botao2){
	remove();
	}//botao2

if(e.getSource()==botao3){
	pesquisa();	
 }//botao3

if(e.getSource()==botao4){
	edita();
}//botao4

if(e.getSource()==botao5){	
	exibe();    
}//botao5

if(e.getSource() == botao6){
	this.setVisible(false);
}//botao6	

if (e.getSource()==BotaoOK){	
	//aqui fica a ação de destravar o botão.
}//if

}//actionPerformed



public void exibe(){
	JList list=new JList(new Vector<Capacete>(lista));
	JFrame janela = new JFrame("PRODUTOS CADASTRADOS!"); 

	JPanel botoes = new JPanel(new GridLayout(1, 2));  
	botoes.add(BotaoOK); 
	
	janela.setLayout(new BorderLayout());
	janela.getContentPane().add(botoes, BorderLayout.SOUTH); 
	
	JScrollPane scrollpane = new JScrollPane(list);  
    scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);  
    scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
    
    
    janela.add(scrollpane); 
    janela.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);  // não terminar a máquina virtual  
    janela.setSize(800, 600);  
    janela.validate();  
    janela.setVisible(true);
}//exibe
[color=red][/color] como faço para o programa esperar essa resposta? abraços!
GOSTEI 0
Leonardo Narciso

Leonardo Narciso

18/01/2012

Como ainda é o mesmo projeto, não vi necessidade de abrir outro tópico. vamos la, criei uma classe Cadastro, para cadastrar os meus produtos, ele cadastra tudo direitinho porém não sei fazer a ligação da classe Cadastro com a mainNetoCapacetes e exibir o que cadastrei. segue código: Classe Cadastro(); :
package NetoCapacetesPACKAGE;

import javax.swing.*;  
import java.awt.*;  
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
	  
	  
	public class Cadastro extends JFrame implements ActionListener{  
	  	private static final long serialVersionUID = 1L;
	  	
	   	Capacete cp=new Capacete();
	  	
	  	public JLabel lblnome, lbltamanho, lblquantidade, lblpreco, lblid;  
		public JTextField jtfnome, jtftamanho, jtfquantidade, jtfpreco, jtfid;  
		public JButton BotaoOK, BotaoCancelar;  
		  
		
		public Cadastro() {  
		  
		// painel com os dados  
		lblid= new JLabel(" ID: ");
		jtfid= new JTextField();
		lblnome = new JLabel(" Nome: ");  
		jtfnome = new JTextField();  
		lbltamanho = new JLabel(" Tamanho: ");  
		jtftamanho = new JTextField();  
		lblquantidade = new JLabel(" Quantidade: ");  
		jtfquantidade = new JTextField();  
		lblpreco=new JLabel(" Preço: ");
		jtfpreco=new JTextField();

		JPanel pGrid = new JPanel(new GridLayout(5,2)); 
		pGrid.add(lblid);
		pGrid.add(jtfid);
		pGrid.add(lblnome);  
		pGrid.add(jtfnome);  
		pGrid.add(lbltamanho);  
		pGrid.add(jtftamanho);  
		pGrid.add(lblquantidade);  
		pGrid.add(jtfquantidade);
		pGrid.add(lblpreco);
		pGrid.add(jtfpreco);
		  // painel com o cadastro  

		  
		// painel com os comandos  
		BotaoOK = new JButton("OK");  
		BotaoCancelar = new JButton("Cancelar"); 
		
		BotaoOK.addActionListener(this);
		BotaoCancelar.addActionListener(this);
		  
		JPanel pBotoes = new JPanel(new GridLayout(1, 2));  
		pBotoes.add(BotaoOK);  
		pBotoes.add(BotaoCancelar);  
		  
		// painel do JFrame  
		this.setLayout(new BorderLayout());  
		this.getContentPane().add(pGrid, BorderLayout.NORTH);  
		this.getContentPane().add(pBotoes, BorderLayout.SOUTH);  
		  
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
		this.setTitle("Cadastro");  
		this.setSize(400, 190);  
		this.setResizable(true);  
		this.setLocationRelativeTo(null);  
		this.setVisible(true);  
		}  
		
		public void actionPerformed(ActionEvent a){
			if (a.getSource()==BotaoOK){								
				cp.id=jtfid.getText();
				cp.nome=jtfnome.getText();
				cp.quantidade=jtfquantidade.getText();
				cp.tamanho=jtftamanho.getText();
				cp.preco=jtfpreco.getText();
				JOptionPane.showMessageDialog(null, "Produto cadastrado com sucesso!"+cp);	
				this.setVisible(false);
				}//botaoOK

			if(a.getSource()==BotaoCancelar){
				this.setVisible(false);
				}//botaoCancelar
		}//actionPerformed
}

e o código do mainNetoCapacetes
package NetoCapacetesPACKAGE;

import java.awt.BorderLayout;

import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ImageIcon;

public class mainNetoCapacetes extends JFrame implements ActionListener{
	private static final long serialVersionUID = 1L;	
	
	ArrayList<Capacete> lista=new ArrayList<Capacete>();
	
	ImageIcon imgadiciona=new ImageIcon("C:\\Users\\7\\Desktop\\LEO\\LeoNarciso WORKSPACE\\NetoCapacetes\\NetoCapacete_imagens\\adiciona.png");
	ImageIcon imgremove=new ImageIcon("C:\\Users\\7\\Desktop\\LEO\\LeoNarciso WORKSPACE\\NetoCapacetes\\NetoCapacete_imagens\\remove.png");
	ImageIcon imgpesquisa=new ImageIcon("C:\\Users\\7\\Desktop\\LEO\\LeoNarciso WORKSPACE\\NetoCapacetes\\NetoCapacete_imagens\\pesquisa.png");
	ImageIcon imgedita=new ImageIcon("C:\\Users\\7\\Desktop\\LEO\\LeoNarciso WORKSPACE\\NetoCapacetes\\NetoCapacete_imagens\\edita.png");
	ImageIcon imgexibe=new ImageIcon("C:\\Users\\7\\Desktop\\LEO\\LeoNarciso WORKSPACE\\NetoCapacetes\\NetoCapacete_imagens\\exibe.png");
	ImageIcon imgsair=new ImageIcon("C:\\Users\\7\\Desktop\\LEO\\LeoNarciso WORKSPACE\\NetoCapacetes\\NetoCapacete_imagens\\sair.png");
	//criando imagens
	
	JButton botao1=new JButton("Cadastrar produtos.");
	JButton botao2=new JButton("Remover produtos.");
	JButton botao3=new JButton("Pesquisar produtos.");
	JButton botao4=new JButton("Editar produtos.");
	JButton botao5=new JButton("Exibir produtos.");
	JButton botao6=new JButton("SAIR.");
	JButton botaoOK= new JButton("OK");
	//criando botoes
	
	public mainNetoCapacetes(){//CONSTRUTOR
		
		super("Created by Leonardo Narciso  -  Contact: leonarciso1988@hotmail.com");//define o nome da janela do gridlayout
			
Container pane = this.getContentPane();
pane.setLayout(new GridLayout(6,1)); //define o layout


pane.add(botao3);
pane.add(botao4);
pane.add(botao5);
pane.add(botao6);
pane.add(botao1);
pane.add(botao2);
//adicionando botoes

botao1.setIcon(imgadiciona);
botao2.setIcon(imgremove);
botao3.setIcon(imgpesquisa);
botao4.setIcon(imgedita);
botao5.setIcon(imgexibe);
botao6.setIcon(imgsair);
//adicionando imagens aos botoes

botaoOK.setForeground(Color.RED);
//alterando a cor do da fonte do botão

botao1.addActionListener(this);
botao2.addActionListener(this);
botao3.addActionListener(this);
botao4.addActionListener(this);
botao5.addActionListener(this);
botao6.addActionListener(this);
botaoOK.addActionListener(this);

this.getContentPane().add(botao1);
this.getContentPane().add(botao2);
this.getContentPane().add(botao3);
this.getContentPane().add(botao4);
this.getContentPane().add(botao5);
this.getContentPane().add(botao6);


this.setContentPane(pane); //define um container para o JFrame
this.setSize(540,500);
this.setVisible(true);
	}//CONSTRUTOR
			
	
public static void main(String args[]){
	
    mainNetoCapacetes jan = new mainNetoCapacetes();
    
    jan.setSize(540, 500);
	jan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	jan.setVisible(true);
	
	
}//main


public void actionPerformed(ActionEvent e){
		
if (e.getSource()==botao1){	
	cadastro();
}//botao1

if(e.getSource()==botao2){
	remove();
	}//botao2

if(e.getSource()==botao3){
	pesquisa();	
 }//botao3

if(e.getSource()==botao4){
	edita();
}//botao4

if(e.getSource()==botao5){	
	exibe();    
}//botao5

if(e.getSource() == botao6){
	this.setVisible(false);
}//botao6	

if (e.getSource()==botaoOK){	
	
}//if

}//actionPerformed


public void cadastro(){
	Capacete cp1=new Capacete();
	
	Cadastro cad = new Cadastro();
	cp1.nome=cad.cp.getNome();
	lista.add(cp1);



//aqui era pra fazer a ligação com a classe Cadastro();



		
	if(cp1.nome==null||cp1.id==null||cp1.quantidade==null||cp1.tamanho==null||cp1.preco==null){
		lista.remove(cp1);		
	}//if
}//cadastro
public void exibe(){
	JList list=new JList(new Vector<Capacete>(lista));
	JFrame janela = new JFrame("PRODUTOS CADASTRADOS!"); 
			
	JPanel botoes = new JPanel(new GridLayout(1, 2));  
	botoes.add(botaoOK); 
	
	janela.setLayout(new BorderLayout());
	janela.getContentPane().add(botoes, BorderLayout.SOUTH); 
	
	JScrollPane scrollpane = new JScrollPane(list);  
    scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);  
    scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
     
    
    janela.add(scrollpane); 
    janela.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);  // não terminar a máquina virtual  
    janela.setSize(800, 600);  
    janela.setVisible(true);
       

}//exibe
}//class
como faço essa ligação entre as duas?
GOSTEI 0
POSTAR