Iniciando uma classe

1 resposta
T

Galera,
Sou mais do que iniciante e preciso da ajuda de vocês.
Estou tentando fazer um projetinho, onde tenho uma classe chamada cliente, gostaria de criar varios clientes e adicionar em um Combo. Mas não está funcionando. Segue abaixo, o combo fica como 0Null.

Menu
package entregas;

import entregas.Cliente;

import java.util.Iterator;

import java.util.ArrayList;

import java.util.List;

//import com.sun.jmx.remote.internal.ClientCommunicatorAdmin;

public class Principal extends javax.swing.JFrame {

public Principal() {
    initComponents();      
}

// <editor-fold defaultstate="collapsed" desc=" Código Gerado ">                          
private void initComponents() {
    jPanel1 = new javax.swing.JPanel();
    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    cbClientes = new javax.swing.JComboBox();
    cbMotoboy = new javax.swing.JComboBox();
    btnEfEntrega = new javax.swing.JButton();
    jLabel3 = new javax.swing.JLabel();
    jScrollPane1 = new javax.swing.JScrollPane();
    lstEntregas = new javax.swing.JList();
    btnFinalizar = new javax.swing.JButton();
    jSeparator1 = new javax.swing.JSeparator();
    jLabel4 = new javax.swing.JLabel();
    jScrollPane2 = new javax.swing.JScrollPane();
    jList1 = new javax.swing.JList();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("Entregas");
    setResizable(false);
    jPanel1.setBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, new java.awt.Color(153, 255, 153)));
    jLabel1.setText("Clientes:");

    jLabel2.setText("Moto-Boys:");

    cbClientes.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            cbClientesFocusGained(evt);
        }
    });

    btnEfEntrega.setText("Efetuar Entrega");

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(cbClientes, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel1))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 94, Short.MAX_VALUE)
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jLabel2)
                        .addComponent(cbMotoboy, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addContainerGap())
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                    .addComponent(btnEfEntrega)
                    .addGap(19, 19, 19))))
    );
    jPanel1Layout.setVerticalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel2)
                .addComponent(jLabel1))
            .addGap(1, 1, 1)
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(cbMotoboy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(cbClientes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(btnEfEntrega)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    jLabel3.setText("Entregas Pendentes:");

    lstEntregas.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
    jScrollPane1.setViewportView(lstEntregas);

    btnFinalizar.setText("Finalizar Entrega");

    jSeparator1.setForeground(new java.awt.Color(153, 255, 153));

    jLabel4.setText("Entregas Relizadas:");

    jList1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
    jScrollPane2.setViewportView(jList1);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jLabel3)
            .addContainerGap(315, Short.MAX_VALUE))
        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 287, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(btnFinalizar)
            .addContainerGap())
        .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jLabel4)
            .addContainerGap(321, Short.MAX_VALUE))
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 406, Short.MAX_VALUE)
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jLabel3)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addComponent(btnFinalizar))
            .addGap(14, 14, 14)
            .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(15, 15, 15)
            .addComponent(jLabel4)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );
    pack();
}// </editor-fold>                        

private void cbClientesFocusGained(java.awt.event.FocusEvent evt) {                                       
    cbClientes.removeAllItems();
    Cliente cli = new Cliente( 0, "Fernando" );
    cbClientes.addItem( cli.getCodigo() + cli.getNome() );       
}                                      

public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Principal().setVisible(true);
        }
    });
}

// Declaração de variáveis - não modifique                     
private javax.swing.JButton btnEfEntrega;
private javax.swing.JButton btnFinalizar;
private javax.swing.JComboBox cbClientes;
private javax.swing.JComboBox cbMotoboy;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JList jList1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JList lstEntregas;
// Fim da declaração de variáveis

}

Cliente

package entregas;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class Cliente {
private int codigo;
private String nome;

private List Cliente;

public Cliente(){

}
    
public Cliente( int codigo , String nome ){
    setCodigo(codigo);
    setNome(nome);
}

public int getCodigo(){
    return codigo;
} 

public void setCodigo( int codigo ){
    codigo = codigo;
}

public String getNome(){
    return nome;    
}

public void setNome( String nome ){
    nome = nome;
}

public String toString(){
    return "/nCod: " + getCodigo() + "Nome: " + getNome();    
}

public List Cliente(){
    return Cliente;
}

}

Obrigado

1 Resposta

Ironlynx
Tremonti, bem-vindo ao GUJ! :D Existe alguma razão especial para você tentar isso(a inclusão de clientes) com um ouvinte de FOCO? E vc pode usar várias maneiras de adicionar items(Clientes) a sua combo.Poderia usar um model, como setModel(new DefaultComboBoxModel(Object[] items)); Mas se esses valores forem dinâmicos, extenda DefaultComboBoxModel para criar o seu próprio model. Algo mais ou - assim:
public class ClienteModel {
  int cod;
  String nome;
  public ClienteModel(int codigo, String nome) {
    cod = codigo;
    nome = nome;
  }
}
public class MeuClienteBoxModel extends DefaultComboBoxModel{

  public MeuClienteBoxModel() {
  }

public Object getElementAt(int index) {
    Object result;
    if(super.getElementAt(index) instanceof ClienteModel)
      result = ((ClienteModel)super.getElementAt(index)).nome;
    else
      result = super.getElementAt(index);
    return result;
  }

  public Object getSelectedItem() {
    Object result;
    if(super.getSelectedItem() instanceof ClienteModel)
      result = ((ClienteModel)super.getSelectedItem()).nome;
    else
      result = super.getSelectedItem();
    return result;
  }

  public int getCod(int index) {
    Object result;
    int aux = -1;
    if((result = super.getElementAt(index)) instanceof ClienteModel)
      aux = ((ClienteModel)result).cod;
    return aux;
  }
}
Criado 18 de novembro de 2007
Ultima resposta 18 de nov. de 2007
Respostas 1
Participantes 2