Jcombobox

8 respostas
B

estou fazendo um sistema de uma fabrica em que

preciso criar um combobox que mostra para o usuario os valores dos pesos das chapas e para o sitema procurar essas chapas ele busca pelo id dessas chapas

entao no addItem aparece o valor desse peso

e eu preciso pegar o id dessa chapa pra processar

eu recebo um arraylist dessas chapas como eu faco par ao usuario ver o peso e eu pegar o id

segue o meu codigo

ArrayList<Chapa> arraycps = new ArrayList<Chapa>();
   ChapaControl Chapacontrollistcombo = new ChapaControl();
   Iterator Chapainterator = Chapacontrollistcombo.Mostra().iterator();
      while (Chapainterator.hasNext()) {
         Chapa Chapa  = (Chapa) Chapainterator.next();
	     arraycps.add(Chapa);
         //JOptionPane.showMessageDialog(null, "chapa peso " +Chapa.getPeso());
      }
ComboChapaTambor = new javax.swing.JComboBox();
for (Chapa cpInsert : arraycps) {
      ComboChapaTambor.addItem(""+cpInsert.getPeso());
      //naun deu certo isso
      ComboChapaTambor.setSelectedItem(""+cpInsert.getIdchapa());
      }

8 Respostas

abelgomes

da uma procurada no forum antes de postar…

olha esse codigo

/*
 * Principal.java
 *
 * Created on 5 de Dezembro de 2008, 16:39
 */
package tela;

import java.util.AbstractMap;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import vo.Pessoa;

/**
 *
 * @author  p001226
 */
public class Principal extends javax.swing.JFrame {

    /** Creates new form Principal */
    public Principal() {
        initComponents();
    }

    /** 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.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jLabel3 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jComboBox1 = new javax.swing.JComboBox();
        jComboBox1 = new JComboBox(opcoes);
        jLabel2 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jTextField2 = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jTextField3 = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jTextField4 = new javax.swing.JTextField();

        jLabel3.setText("jLabel3");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Tela de Testes");

        jLabel1.setText("Nome");

        jLabel2.setText("Itens");

        jButton1.setText("Add");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("Remover");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jLabel4.setText("Enereco");

        jLabel5.setText("Telefone");

        jLabel6.setText("Numero");

        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()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jLabel4)
                            .addGap(18, 18, 18))
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jLabel1)
                            .addGap(18, 18, 18))
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jLabel5)
                            .addGap(18, 18, 18)))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel6)
                            .addComponent(jLabel2))))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jComboBox1, 0, 230, Short.MAX_VALUE)
                    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE)
                        .addGap(80, 80, 80)
                        .addComponent(jButton2))
                    .addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE))
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton1, jButton2});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(19, 19, 19)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1))
                .addGap(7, 7, 7)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(16, 16, 16)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5))
                .addGap(17, 17, 17)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton2)
                    .addComponent(jButton1))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    Pessoa p = new Pessoa();
    p.setNome(jTextField1.getText());
    p.setEndereco(jTextField2.getText());
    p.setTelefone(jTextField3.getText());
    p.setId(Integer.parseInt(jTextField4.getText()));
    opcoes.add(p.toString());
    jTextField1.setText("");
    jTextField2.setText("");
    jTextField3.setText("");
    jTextField4.setText("");
    jComboBox1.updateUI();

}                                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    opcoes.remove(jComboBox1.getSelectedItem());
    jComboBox1.setSelectedIndex(-1);
}                                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Principal().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    // End of variables declaration
    private Vector opcoes = new Vector();
}
B

mais onde nesse codigo faz o que eu quero

abelgomes

vc rodou o codigo? usa essa logica…

qaundo o cara clicar no teu item pega o ID dele…e com o ID vc faz oque quiser…

la no to String da classe Pessoa tem assim

id+" - "+nome;

entao vc pega o ID

agora se vc ja quer o codigo pronto veio ao lugar errado…

lina

Oi,

getSelectedValue() ? ou Index() ?

Tchauzin!

abelgomes

da um getSelectedValue(); ai ele retorna por exemplo “1 – Lina” entao vc faz um substring pra pegar as posições ate o primeiro espaço em branco…isso é o codigo :wink: essa é a maneira mais simples de fazer…

mas tb ja vi muita coisa mirabolante que as pessoas inventam pra fazer isso…

Fernando_Generoso_da

Dá uma olhada nesse site:

http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html

Utilize a combinação de ComboModel e ComboRenderer.

att

Fernando Rosa

abelgomes

nesse site da sun ele utiliza o tamanho do combo fixo…o que ele quer é um combo dinamico…mas é bem interassante em…

Fernando_Generoso_da

Segue um exemplo de ComboModel…a ser utilizado na instanciação do JComboBox…ou no setModel():

public class ComboModel implements ComboBoxModel {

	private List<Pessoa> pessoas = new ArrayList<Pessoa>();
	private Pessoa selectedItem = null;
	
	private void addItem(Pessoa pessoa){
		this.pessoas.add(pessoa);
	}
	
	private void removeItem(Pessoa pessoa){
		pessoas.remove(pessoa);
	}

	@Override
	public void addListDataListener(ListDataListener l) {

	}

	@Override
	public Object getElementAt(int index) {
		return pessoas.get(index);
	}

	@Override
	public Object getSelectedItem() {
		return selectedItem;
	}

	@Override
	public int getSize() {
		retur pessoas.size();
	}

	@Override
	public void removeListDataListener(ListDataListener l) {
		// TODO Auto-generated method stub

	}

	@Override
	public void setSelectedItem(Object anItem) {
		this.selectedItem = anItem;

	}

}

Fernando

Criado 18 de dezembro de 2008
Ultima resposta 23 de dez. de 2008
Respostas 8
Participantes 4