Reposicionar Componentes em tempo de execução

2 respostas
_

Eai pessoal,

Minha duvida é o seguinte, eu estou criando uma tela que irá listar os produtos cadastrados, nesta tela eu tenho um JComboBox que lista os tipos de busca, eu quero que ao selecionar o tipo de busca apareça em frente a este JComboBox um componente correspondente, por exemplo, se eu seleciono buscar por nome, quero que apareça um JTextField, se eu selecionar por tipo eu quero que aparece um JComboBox que listará os tipos.

Alguem sabe como posso fazer isso?
Estou utilizando o netbeans.

Desde já agradeço!!!

2 Respostas

T
import java.awt.Component;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/*
 * JanelaProcura.java
 *
 * Created on 24 de Janeiro de 2008, 16:45
 */

/**
 *
 * @author  adm
 */
public class JanelaProcura extends javax.swing.JFrame {
    
    /** Creates new form JanelaProcura */
    public JanelaProcura() {
        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.
     */
    // <editor-fold defaultstate="collapsed" desc=" Código Gerado ">                          
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        cboopcao = new javax.swing.JComboBox();
        pnlopcao = new javax.swing.JPanel();
        cmdverificar = new javax.swing.JButton();

        getContentPane().setLayout(null);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jLabel1.setText("Op\u00e7\u00e3o");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(10, 20, 50, 14);

        cboopcao.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "", "Nome", "Tipo" }));
        cboopcao.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cboopcaoItemStateChanged(evt);
            }
        });

        getContentPane().add(cboopcao);
        cboopcao.setBounds(70, 20, 170, 20);

        pnlopcao.setLayout(new java.awt.BorderLayout());

        getContentPane().add(pnlopcao);
        pnlopcao.setBounds(260, 20, 180, 30);

        cmdverificar.setText("Verificar");
        cmdverificar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmdverificarActionPerformed(evt);
            }
        });

        getContentPane().add(cmdverificar);
        cmdverificar.setBounds(180, 70, 90, 23);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-479)/2, (screenSize.height-134)/2, 479, 134);
    }// </editor-fold>                        

    private void cmdverificarActionPerformed(java.awt.event.ActionEvent evt) {                                             
// TODO adicione seu código de manipulação aqui:
        if (pnlopcao.getComponents().length != 0) {
            Component c = pnlopcao.getComponents()[0];
            if (c instanceof JTextField) {
                JOptionPane.showMessageDialog(null,((JTextField)c).getText());
            }
            
            if (c instanceof JComboBox) {
                JOptionPane.showMessageDialog(null,((JComboBox)c).getSelectedItem().toString());
            }
        }
    }                                            

    private void cboopcaoItemStateChanged(java.awt.event.ItemEvent evt) {                                          
// TODO adicione seu código de manipulação aqui:
        if (cboopcao.getSelectedItem().toString().equals("Nome")) {
            pnlopcao.removeAll();
            pnlopcao.add(new JTextField());
            pnlopcao.updateUI();
        } else {
            
            if (cboopcao.getSelectedItem().toString().equals("Tipo")) {
                pnlopcao.removeAll();
                pnlopcao.add(new JComboBox(new String[] {"Importado","Fora do Estado","Estadual"}));
                pnlopcao.updateUI();                
            } else {
                pnlopcao.removeAll();
                pnlopcao.updateUI(); 
            }
        }
    }                                         
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JanelaProcura().setVisible(true);
            }
        });
    }
    
    // Declaração de variáveis - não modifique                     
    private javax.swing.JComboBox cboopcao;
    private javax.swing.JButton cmdverificar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel pnlopcao;
    // Fim da declaração de variáveis                   
    
}
_

valeu kra é isso mesmo q eu precisava…

Criado 24 de janeiro de 2008
Ultima resposta 24 de jan. de 2008
Respostas 2
Participantes 2