Ajuda com JList

1 resposta
Ricardo_Siqueira

è 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
    }

1 Resposta

Ricardo_Siqueira

Eu acho que pra simplificar tudo que eu quero saber é como se faz um refresh numa JList…ela foi iniciada com alguns valores e durante o programa recebeu novos valores…mas a tela ainda mosta o valor inicializado nela.

Criado 12 de abril de 2006
Ultima resposta 12 de abr. de 2006
Respostas 1
Participantes 1