Sugestões para o meu código

Olá pessoal, bom dia!
Gostaria de ouvir de vcs sugestões para o código que vou postar abaixo, mas primeiro vou relatar o pequeno problema.
Eu preciso listar em uma JList a relação de usuários contida em uma tabela e isso é fácil. O usuário seleciona o nome correspondente ao seu usuário para acessar o sistema. Eu gostaria de levar o código do usuário que está na tabela para a próxima tela e resolvi a questão da forma abaixo.

	private JList getJList_Exemplo() {
		if (jList_Exemplo == null) {
			final DefaultListModel DLM_NomeDoPerfilUsuario = new DefaultListModel();
			jList_Exemplo = new JList(DLM_NomeDoPerfilUsuario);
			try {
				Session GerenciarSessaoPerfilDeUsuario = HibernateUtil.getSessao();
				PerfilUsuario ObjetoNomeDoPerfilDeUsuario = new PerfilUsuario();

				List<PerfilUsuario> ListarNomePerfilDeUsuario = new ArrayList<PerfilUsuario>();
				ListarNomePerfilDeUsuario = GerenciarSessaoPerfilDeUsuario.createQuery("from PerfilUsuario where Situacao='A' order by Nome_Completo").list();

				int TamanhoDaListaDoNomeDoPerfilDoUsuario = ListarNomePerfilDeUsuario.size();
				for(int i=0;i<TamanhoDaListaDoNomeDoPerfilDoUsuario;i++) {
					ObjetoNomeDoPerfilDeUsuario = ListarNomePerfilDeUsuario.get(i);
					DLM_NomeDoPerfilUsuario.addElement(ObjetoNomeDoPerfilDeUsuario.getNome_Completo());
				}
				GerenciarSessaoPerfilDeUsuario.close();
			}
			catch(Exception ErroPerfilUsuario) {
				JOptionPane.showMessageDialog(null,"Erro ao Exibir o Perfil de Usuário! - "+ErroPerfilUsuario);
			}
			jList_Exemplo.setSize(new Dimension(250, 300));
			jList_Exemplo.setLocation(new Point(50, 10));
			jList_Exemplo.setSelectedIndex(-1);
			jList_Exemplo.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
			jList_Exemplo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
			jList_Exemplo.addListSelectionListener(new ListSelectionListener() {
				public void valueChanged(ListSelectionEvent e) {
					int IndiceDoNomeDoPerfilDoUsuario = jList_Exemplo.getSelectedIndex();

					final DefaultListModel DLM_CodigoDoPerfilUsuario = new DefaultListModel();
					try {
						Session GerenciarSessaoPerfilDeUsuario = HibernateUtil.getSessao();
						PerfilUsuario ObjetoCodigoDoPerfilDoUsuario = new PerfilUsuario();

						List><PerfilUsuario> ListarCodigoDoPerfilDeUsuario = new ArrayList<PerfilUsuario>();
						ListarCodigoDoPerfilDeUsuario = GerenciarSessaoPerfilDeUsuario.createQuery("from PerfilUsuario where Situacao='A' order by Nome_Completo").list();

						int TamanhoDaListaDoCodigoDoPerfilDoUsuario = ListarCodigoDoPerfilDeUsuario.size();
						for(int i=0;i<TamanhoDaListaDoCodigoDoPerfilDoUsuario;i++) {
							ObjetoCodigoDoPerfilDoUsuario = ListarCodigoDoPerfilDeUsuario.get(i);
							DLM_CodigoDoPerfilUsuario.addElement(ObjetoCodigoDoPerfilDoUsuario.getCodigo());
						}
						GerenciarSessaoPerfilDeUsuario.close();
					}
					catch(Exception ErroCodigoDoPerfilDoUsuario) {
						JOptionPane.showMessageDialog(null,"Erro ao Pesquisar o Código do Perfil de Usuário! - "+ErroCodigoDoPerfilDoUsuario);
					}

					JOptionPane.showMessageDialog(null,"A POSIÇÃO do Nome do Perfil do Usuário no índice é: "+IndiceDoNomeDoPerfilDoUsuario);
					Object CodigoDoPerfilDoUsuario = DLM_CodigoDoPerfilUsuario.getElementAt(IndiceDoNomeDoPerfilDoUsuario);
					JOptionPane.showMessageDialog(null,"O CÓDIGO localizado neste índice é: "+CodigoDoPerfilDoUsuario);
					String NomeDoPerfilDoUsuario = (String) DLM_NomeDoPerfilUsuario.getElementAt(IndiceDoNomeDoPerfilDoUsuario);
					JOptionPane.showMessageDialog(null,"O NOME localizado neste índice é: "+NomeDoPerfilDoUsuario);
				}
			});
		}
		return jList_Exemplo;
	}

Estou no caminho certo ou está muito complexa a minha solução?

Grato.>