è o seguinte....o código que vou colocar a seguir compila e roda no NetBeans(mas roda no eclipse se vc importar os arquivos certos na pasta do NB)
Trata-se de um Frame com 2 JScrollPane...ambos tem dentro deles uma JList. Entre as duas JList existem 3 botões. Um deles (cujo text é "<<<") copia o item selecionado na primeira lista e adciona na segunda.
Isso ele faz....mas NÃO MOSTRA NA TELA você pode adcionar quantas vezes quiser a segunda lista continua limpa na tela.
Alguém conhece alguma forma de consertar isso?
package src;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.util.*;
import java.sql.*;
/**
*
* @author rsiqueira
*/
public class TesteTelaAdFunc extends javax.swing.JFrame {
/** Creates new form TelaAdFunc */
public TesteTelaAdFunc() {
try{ initComponents();}
catch(SQLException ex){
ex.printStackTrace();
}
catch(ClassNotFoundException ex){
ex.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents()throws SQLException, ClassNotFoundException {
jScrollPane1 = new javax.swing.JScrollPane();
jScrollPane2 = new javax.swing.JScrollPane();
jList1 = new javax.swing.JList();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
lista2 = new ArrayList();
iniciaLista2(lista2);
iniciaLista1();
setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
setTitle("Lista de funcionários.");
jList1.setToolTipText("Todos os funcionários cadastrados no sistema.");
jList1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jScrollPane1.setViewportView(jList2);
jList2.setToolTipText("Funcionários associados ao grupo");
jList2.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jScrollPane2.setViewportView(jList1);
jButton1.setFont(new java.awt.Font("Arial", 3, 12));
jButton1.setText(">>>");
jButton1.setToolTipText("Adicionar funcionario(s) selecionado(s) ao grupo.");
jButton2.setFont(new java.awt.Font("Arial", 3, 12));
jButton2.setText("<<<");
jButton2.setToolTipText("Retirar funcionario(s) selecionado(s) do grupo.");
jButton3.setFont(new java.awt.Font("Arial", 1, 12));
jButton3.setText("OK");
jButton3.setToolTipText("Gravar alterações");
jLabel1.setFont(new java.awt.Font("Arial", 3, 12));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Confira a lista de funcionários adicionados antes de clicar em \"OK\"");
jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
// initTela();
//}
//private void initTela(){
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 200, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jButton1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jButton2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 98,Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jButton3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 98,Short.MAX_VALUE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 200, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(layout.createSequentialGroup()
.add(10, 10, 10)
.add(jLabel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
.add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane2)
.add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 281, Short.MAX_VALUE)))
.add(layout.createSequentialGroup()
.add(69, 69, 69)
.add(jButton1)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButton2)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButton3)))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jLabel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE)
.addContainerGap())
);
pack();
setBounds(280,150,500,360);
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
if(jList1.getSelectedValue() != null){
valorsel = (String)(jList1.getSelectedValue());
adicionaLista(valorsel);
//System.out.println(valorsel);
}
else{ JOptionPane.showMessageDialog(jScrollPane1, "È necessário selecionar um item");}
}
});
}// </editor-fold>
private void iniciaLista1(){
jList1= null;
jList1= new javax.swing.JList();
jList1.setModel(new javax.swing.AbstractListModel() {
String[] strings = {"item1", "item2", "item3"};
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
}
private void iniciaLista2(ArrayList lista2){
jList2= null;
jList2 = new javax.swing.JList();
final String names[] = new String[lista2.size()];
for (int i= 0; i<lista2.size(); i++){
names[i] = lista2.get(i).toString();
}
jList2.setModel(new javax.swing.AbstractListModel() {
String[] strings = names;
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
}
private void adicionaLista(String valor){
boolean bol= false;
if(lista2.isEmpty()){adic(valor);}
else{
for(int i= 0; i<lista2.size(); i++){
if(valor.equals(lista2.get(i).toString())){
bol = true;
break;}
else{
bol= false;
}
}if(bol){JOptionPane.showMessageDialog(jScrollPane1, "Usuário já pertence ao grupo!" );}
else{adic(valor);}
}
}
private void adic(String valor){
lista2.add(valor);
System.out.println(lista2);
iniciaLista2(lista2);}
public static void main(String[] args) {
new TesteTelaAdFunc().setVisible(true);
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private ArrayList lista2;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JList jList1;
private String valorsel = "";
private javax.swing.JList jList2;
private javax.swing.JScrollPane jScrollPane1, jScrollPane2;
// End of variables declaration
}