Não consigo adicionar Itens na lista?

4 respostas
E

Fala galera,
Boa tarde a todos, estou com um problema na inclusão da lista no programa…

Segue o código…

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class CadProduto extends JFrame implements ActionListener , ListSelectionListener{
	
	JLabel lblNomeProduto, lblPrecoProduto, lblDescricaoProduto, lblListaProduto;
	JTextField txtNomeProduto, txtPrecoProduto;
	JTextArea taDescricaoProduto;
	JButton btAddListaProduto, btRemoveListaProduto, btSalvarProduto, btFecharProduto;
	JList listaProduto;
	DefaultListModel listandoProduto;
	
	CadProduto(){
		setTitle("Sistema ADM - Cadastramento de Produtos");
		setSize(550,600);
		setLocation(260,20);
		setResizable(false);
				
		lblNomeProduto = new JLabel("Nome do Produto");
		lblNomeProduto.setBounds(5,10,120,20);
		txtNomeProduto = new JTextField(100);
		txtNomeProduto.setBounds(5,35,200,20);
		
		lblPrecoProduto = new JLabel("Preço do Produto");
		lblPrecoProduto.setBounds(5,65,120,20);
		txtPrecoProduto = new JTextField(10);
		txtPrecoProduto.setBounds(5,90,200,20);
		
		lblDescricaoProduto = new JLabel("Descrição do Produto");
		lblDescricaoProduto.setBounds(5,120,200,20);
		taDescricaoProduto = new JTextArea(10,25);
		taDescricaoProduto.setBounds(5,145,200,200);
		JScrollPane painel = new JScrollPane(taDescricaoProduto);
		
		listaProduto = new JList(listandoProduto);
		listandoProduto.addElement("testando1");
		listandoProduto.addElement("testando2");
		listandoProduto.addElement("testando3");
		listaProduto.addListSelectionListener(this);
		JScrollPane painelLista = new JScrollPane(listaProduto);
		
		getContentPane().setLayout(null);
		getContentPane().add(lblNomeProduto);
		getContentPane().add(txtNomeProduto);
		
		getContentPane().add(lblPrecoProduto);
		getContentPane().add(txtPrecoProduto);
		
		getContentPane().add(lblDescricaoProduto);
		getContentPane().add(taDescricaoProduto);
		getContentPane().add(painel);
				
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource()==btAddListaProduto)
	    {
			listandoProduto.addElement(txtNomeProduto.getText());  // adiciona itens a lista
	      txtNomeProduto.setText("");
	    }
	  	  
	}

	@Override
	public void valueChanged(ListSelectionEvent e) {
		// TODO Auto-generated method stub
		
	}
}

Se puderem me ajudar…
Um abraço a todos

4 Respostas

G

você precisa adicionar em um objeto DefaultListModel, veja:

private final DefaultListModel dl = new DefaultListModel();

private JList getLstRota() {

if (lstRota == null) {

lstRota = new JList();

lstRota.setEnabled(false);

}
lstRota.setModel(dl);
            
	return lstRota;
}

lstRota.setModel(dl);

dl.addElement(“testando1”);

No site http://www.tiacademicoweb.xpg.com.br/[color=blue] [/color] você encontrará um tutorial de java - Utilizando componentes swing nele você verá alguns métodos usados neste componente.

E

Me desculpe a ignorância gemeosguimaraes, mas se for desta forma terei que criar um método para essa função e depois chamá-lo?

G

Você está fazendo confusão. Vc só está criando a lista e modelo dela(private final DefaultListModel dl = new DefaultListModel()). Então adiciona os elementos no modelo
dl.addElement(“testando1”) e adiciona o modelo na lista lstRota.setModel(dl).

E

Grato gemeosguimaraes, consegui incluir a lista…
Para quem tiver a mesma dúvida, fiz da seguinte forma…

Declarei

private final DefaultListModel listandoProduto = new DefaultListModel(); private JList listaProduto;

E na construtora coloquei…

listaProduto = new JList(listandoProduto);   
        listandoProduto.addElement("testando1");   
        listandoProduto.addElement("testando2");   
        listandoProduto.addElement("testando3");  
        listaProduto.setModel(listandoProduto);
        listaProduto.addListSelectionListener(this);   
        JScrollPane painelLista = new JScrollPane(listaProduto);
        listaProduto.setBounds(230,35,250,315);

Conforme passado pelo gemeosguimaraes…
Percebi que se eu não colocasse ele no getContentPane().add(listaProduto); ele não apareceria.
No livro que eu tenho ele não inclui no getContentPane… O que ocorre de tão diferente onde tem situações que é preciso e outras que não é???

Criado 4 de fevereiro de 2011
Ultima resposta 4 de fev. de 2011
Respostas 4
Participantes 2