Atualizar uma JList

0 respostas
S

Olá pessoal,

Estou com um problema na hora de atualizar o meu componente JList. Eu preciso criar um novo registro no meu banco de dados e depois carregar o JList com o novo registro. A primeira exibição do conteúdo da tabela no JList e a inclusão de um novo registro funciona, mas no momento de recarregar a JList com o novo registro que eu incluí, nada acontece. Não achei nada que pudesse justificar esse comportamento. Anexei abaixo o código e retirei algumas linhas para torná-lo o menor possível. Um detalhe é que o novo registro é digitado em um segundo form, mas como a gravação no banco de dados é feita no form de origem não acredito que isso tenha alguma influência sobre o resultado.

Grato,
Sérgio

public class UI_Pasta_ComJlist extends JFrame {
	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JScrollPane scrollPane_NomeDaLista = null;
	private JList list_ListaPastaDoPerfilDoUsuario = null;
	private JToolBar toolBar_BarraDeIcones = null;
	private JButton btn_NovaLista = null;
	CriaPasta dCriaListaDoCatalogoDeContatos;

	JFrame frame;
	public UI_Pasta_ComJlist() {
		super();
		PreencherJListDePastaDeContatos();
		initialize();
	}

	private JScrollPane getJScrollPane_NomeDaLista() {
		if (scrollPane_NomeDaLista == null) {
			scrollPane_NomeDaLista = new JScrollPane();
			scrollPane_NomeDaLista.setBounds(new Rectangle(0, 40, 200, 501));
			scrollPane_NomeDaLista.setViewportView(getJList_ListaPastaDoPerfilDoUsuario());
		}
		return scrollPane_NomeDaLista;
	}

	JList getJList_ListaPastaDoPerfilDoUsuario() {
		if (list_ListaPastaDoPerfilDoUsuario == null) {
			list_ListaPastaDoPerfilDoUsuario = new JList();
		}
		return list_ListaPastaDoPerfilDoUsuario;
	}

	private JToolBar getJToolBar_BarraDeIcones() {
		if (toolBar_BarraDeIcones == null) {
			toolBar_BarraDeIcones = new JToolBar();
			toolBar_BarraDeIcones.setSize(new Dimension(201, 40));
			toolBar_BarraDeIcones.setLocation(new Point(0, 0));
			toolBar_BarraDeIcones.setFloatable(true);
			toolBar_BarraDeIcones.setPreferredSize(new Dimension(1000, 40));
			toolBar_BarraDeIcones.setToolTipText("Barra de Icones");
			toolBar_BarraDeIcones.setName("Barra de Icones");
			toolBar_BarraDeIcones.add(getJButton_NovaLista());
		}
		return toolBar_BarraDeIcones;
	}

	private JButton getJButton_NovaLista() {
		if (btn_NovaLista == null) {
			btn_NovaLista = new JButton();
			btn_NovaLista.setFont(new Font("Dialog", Font.BOLD, 11));
			btn_NovaLista.setIcon(new ImageIcon("D:/CursoDeJava/Imagens/CatalogoEndereco/AdicionarLista.png"));
			btn_NovaLista.setText(" Nova Lista   ");
			btn_NovaLista.setSize(new Dimension(120, 40));
			btn_NovaLista.setToolTipText("Criar uma nova pasta");
			btn_NovaLista.setLocation(new Point(16, 0));
			btn_NovaLista.setPreferredSize(new Dimension(85, 30));
			btn_NovaLista.setBorder(BorderFactory.createCompoundBorder(null, null));
			btn_NovaLista.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					dCriaListaDoCatalogoDeContatos.setLocationRelativeTo(frame);
					dCriaListaDoCatalogoDeContatos.setVisible(true);
				}
			});
		}
		return btn_NovaLista;
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				UI_CatalogoDeContatos_ComJlist thisClass = new UI_CatalogoDeContatos_ComJlist(1);
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	private void initialize() {
		this.setSize(1005, 590);
		this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
		this.setResizable(false);
		this.setLocation(new Point(300, 100));
		this.setContentPane(getJContentPane());
		this.setTitle("Catálogo de Contatos");
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		dCriaListaDoCatalogoDeContatos = new CriaPasta(1,frame, this);
		dCriaListaDoCatalogoDeContatos.pack();
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.setSize(1000,600);
			jContentPane.add(getJScrollPane_NomeDaLista(), null);
			jContentPane.add(getJToolBar_BarraDeIcones(), null);
		}
		return jContentPane;
	}

	@SuppressWarnings("unchecked")
	void PreencherJListDePastaDeContatos() {
		final DefaultListModel DLM_PastaDoPerfilUsuario = new DefaultListModel();
		list_ListaPastaDoPerfilDoUsuario = new JList(DLM_PastaDoPerfilUsuario);
		try {
			PastaDeContatos ObjetoPastaDeContatos = new PastaDeContatos();
			DAO ObjetoDAOPastaDeContatos = new DAO(ObjetoPastaDeContatos);

			List<PastaDeContatos> ListarPastaDeContatos = new ArrayList<PastaDeContatos>();
			String ComandoSQL = " where CodigoPerfilUsuario=1 order by Codigo";
			ListarPastaDeContatos = ObjetoDAOPastaDeContatos.ExibirRegistro("PastaDeContatos"+ComandoSQL);

			int TamanhoDaListaPastaDeContatos = ListarPastaDeContatos.size();
			JOptionPane.showMessageDialog(null,"O tamanho da Lista é: "+TamanhoDaListaPastaDeContatos);
			for(int i=0;i<TamanhoDaListaPastaDeContatos;i++) {
				ObjetoPastaDeContatos = ListarPastaDeContatos.get(i);
				((DefaultListModel) list_ListaPastaDoPerfilDoUsuario.getModel()).addElement(ObjetoPastaDeContatos.getDescricaoPasta());
			}
		}
		catch(Exception ErroPerfilUsuario) {
			JOptionPane.showMessageDialog(null,"Erro ao Exibir a Pasta do Perfil do Usuário! - "+ErroPerfilUsuario);
		}
	}

	/** Configura o texto que será exibido no radape da tela. */
    void RecebeNomeDaPasta(String NovaPasta) {
		try {
			PastaDeContatos ObjetoPastaDeContatos = new PastaDeContatos();

			ObjetoPastaDeContatos.setCodigoPerfilUsuario(1);
			ObjetoPastaDeContatos.setDescricaoPasta(NovaPasta);

			DAO><PastaDeContatos> ObjetoDAOPerfilDeUsuario = new DAO<PastaDeContatos>(ObjetoPastaDeContatos);
			ObjetoDAOPerfilDeUsuario.InsereRegistro();
		}
		catch(Exception ErroPerfilUsuario) {
			JOptionPane.showMessageDialog(null,"Erro ao INCLUIR uma nova Pasta de Contatos! - "+ErroPerfilUsuario);
		}
		PreencherJListDePastaDeContatos();
    }
}
Criado 27 de junho de 2011
Respostas 0
Participantes 1