Estou desenvolvendo um Sistema java desktop com Java + NetBeans 6.1 + MySQL e travei na utilização do Jlist. São duas listas onde em uma estão os produtos cadastrados e a outra recebe os produtos selecionados na primeira, e dois Jbuttons que servem para fazer a navegação dos produtos entre as duas listas, um selecionando os produtos da lista de cadastrados e removendo-os dela quando selecionados e outro para quando se desiste desta seleção, estando o produto já dentro da lista de selecionados executando a mesma função do primeiro em sentido inverso (removendo da lista de selecionados e retornando à lista de cadastrados).
Bem, é assim que deveria funcionar. Na verdade consegui carregar a primeira lista e já tentei de tudo para selecionar itens dentro dela e não consegui. Fiz testes e verifiquei que, mesmo marcados para a seleção, os mesmos não são selecionados, retornando sempre -1 (nenhum item da lista selecionado).
Já pesquisei e testei vários códigos postados em diversos fórum e ainda assim não funciona. O JList carrega e só....não exibe nenhum outro erro mas também não seleciona nenhum item marcado. Alguém pode me ajudar?
A seguir vão alguns trechos de código retirados do NetBeans 6.1
private DefaultListModel ListaDespSanCad = new DefaultListModel();
private DefaultListModel ListaDespSanSelec = new DefaultListModel();
jScrollPane1 = new javax.swing.JScrollPane();
JListDespSanCad = new javax.swing.JList();
jScrollPane2 = new javax.swing.JScrollPane();
JListDespSanSelec = new javax.swing.JList();
JListDespSanCad.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Pendências Cadastradas", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 14))); // NOI18N
JListDespSanCad.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
JListDespSanCad.setModel(ListaDespSanCad);
JListDespSanCad.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
JListDespSanCad.setLayoutOrientation(javax.swing.JList.VERTICAL_WRAP);
JListDespSanCad.setSelectionModel(JListDespSanCad.getSelectionModel());
JListDespSanCad.setVisibleRowCount(5);
jScrollPane1.setViewportView(JListDespSanCad);
JListDespSanSelec.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Pendências Selecionadas", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 14))); // NOI18N
JListDespSanSelec.setFont(new java.awt.Font("Arial", 0, 12));
jScrollPane2.setViewportView(JListDespSanSelec);
JListDespSanCad = new javax.swing.JList();
preencherListaCadastrados();
public void preencherListaCadastrados(){
try{
java.sql.PreparedStatement stmt = BD.cnn.prepareStatement("select pendencia from tabdespsanead " +
"where idai = " + varIdAI );
ResultSet rs = stmt.executeQuery();
while(rs.next())
{
ListaDespSanCad.addElement(rs.getString("PENDENCIA"));
}
rs.close();
stmt.close();
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null,"Erro: " + erro.getMessage());
}
}
private void cmdSelecionaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JListDespSanCad.getSelectedIndex() != -1)
{
ListaDespSanCad.removeElement(JListDespSanCad.getSelectedIndex());
}
else
{
JoptionPane.showMessageDialog(null,(JListDespSanCad.getSelectedIndex()) + "Selecione um valor da lista!");
}
}
// Variables declaration - do not modify
private javax.swing.JList JListDespSanCad;
private javax.swing.JList JListDespSanSelec;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;