Jump to content
ricardo_1977

Actualizar eventos de ComboBox

Recommended Posts

ricardo_1977

Boas,

eu tenho uma aplicacao que sera com 3 combobox sequenciais.

primeiro aparece uma combobox e de acordo com a escolha do item aparece uma segunda que por sua vez faz aparecer a terceira depois de haver uma escolha na segunda.

o que eu nao estou a conseguir é caso altere a escolha da segunda provoque as alteracoes previstas na terceira e isso nao esta a acontecer.

Explicando melhor:

eu na 2ª combo escolho o item 1 -.......

entao a terceira combo é povoada com as opcoes 1.1,1.2,1.3......

caso depois altere a escolha da segunda combo  para 2 - ...

a terceira combo deveria ter 2.1,2.2....

mas nao tem, continua com as opcoes 1.1,1.2...

alguem me consegue ajudar?

Share this post


Link to post
Share on other sites
brunoais

Sem o código q tens n consigo ajudar-te.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
ricardo_1977

aqui vai o codigo: as combo em causa sao a subAtrib e a atrib.

outra coisa no metodo  private void desenhaSubAtrib(String s)  ao fazer o print do iten recebido ele imprime me uma string vazia, isto é faz o print(entra lá) mas a string esta vazia.

Nao estou a perceber porque.

public class CRMain
{
   JButton cr; 
   JButton di;
   JButton is; 
   JButton tt; 
   JButton bsh; 
   JButton cc; 
   JButton voltar;
   JComboBox client; 
   JComboBox atrib;
   JComboBox subAtrib; 
   JPanel panel ;
   JPanel panel2;
   JFrame frame;
   JFrame frame2;
   ImageIcon img;
   JLabel labelimg;
   JMenuBar menuBar;
   JMenu menu, submenu;
   JMenuItem menuItem;
    JButton ola;
   //JPanel panel2;
   JLabel label1;
   JLabel label2;
   JLabel labelSubSteps;
   Dimension  dimension;
   String[] tipo;
   JButton go;
   public static Main m;
   String cliente;//vai receber o cliente
   String step;// se warranty ou FOR
   CmRepairs cmr;
   JOptionPane popup;
   String st;
   FrontPage fp;
   public void setCliente(String s) {
       this.cliente = s;
    }
    
    public String getCliente() {
        return this.cliente;
    }
    
   public String getSt() {
       return this.st;
    }
    
    public void setSt(String s) {
        this.st = s;
    }
   public CRMain() {
         setCliente("-1");
         setSt("-1");
         cmr = new CmRepairs();
         int tam = cmr.contaClientesCR();
         int tam2 = cmr.contaDescSteps();
         String[] steps = new String[tam2+1];
         steps = cmr.carregaDescSteps(steps);
         String[] clientes = new String[tam+1];
         clientes =  cmr.carregaClientes(clientes);
         client = new JComboBox(clientes);
         atrib = new JComboBox(steps);
         subAtrib = new JComboBox();
         atrib.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));   
         atrib.setBackground(java.awt.SystemColor.text);   
         atrib.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 12));      
         atrib.setSize(90, 30);   
         atrib.setBounds(300, 30,300,30);  

         label2 = new JLabel("Descrição:");
         label2.setBounds(220 ,20, 100, 50); 
         client.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));   
         client.setBackground(java.awt.SystemColor.text);   
         client.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 12));      
         client.setSize(70, 30);   
         client.setBounds(100, 30,100,30);  
         label1 = new JLabel("Cliente:");
         label1.setBounds(50 ,20, 100, 50); 
         panel = new JPanel();
         panel.setLayout(null);
         voltar = new JButton("GO BACK");
         voltar.setBounds(20,500,100,40);
         panel.add(client);
         panel.add(voltar);
         panel.add(label1);
          voltar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                voltarActionPerformed(evt);
            }
        });
         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();           
            
         frame = new JFrame("Reparacoes ");
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
         //frame.setSize(800,600);
         //frame.setLocation(200,120);
         frame.setSize(screenSize.width-200, screenSize.height - 200);  
         frame.setLocation(100, 100); 
         frame.add(panel);
         frame.setVisible(true);  
         client.addItemListener(new ItemListener(){
                          public void itemStateChanged(ItemEvent ie){
                              String str = (String)client.getSelectedItem();
                              setCliente(str);
                              if(getCliente().equals("-1")) {
                               popup.showMessageDialog(null, "Please choose a client");
                                 }
                                 else{
                               cmr = new CmRepairs();
                               cmr.carregarMemoria(getCliente());
                               panel.add(atrib);
                               panel.add(label2);
                            }
                            }
                            });
     
        
        atrib.addItemListener(new ItemListener(){
                          public void itemStateChanged(ItemEvent ie){
                             String str = (String)atrib.getSelectedItem();
                             setSt(str);
                             desenhaSubAtrib(str);
                            
                              }
                            });
         
        }
        
          private void voltarActionPerformed(java.awt.event.ActionEvent evt) {
                        goToFrontPage();
                    }
                    
                    public void goToFrontPage() {
                        fp = new FrontPage();
                         frame.setVisible(false);
                    }
                    
      
       private void desenhaSubAtrib(String s) {
                             int  tam3 = cmr.contaSubSteps(s);
                             String[] subSteps = new String[tam3+1];
                             subSteps = cmr.getSubSteps(subSteps,s);
                             subAtrib = new JComboBox(subSteps);
                             subAtrib.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));   
                             subAtrib.setBackground(java.awt.SystemColor.text);   
                             subAtrib.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 12));      
                             subAtrib.setSize(90, 30);   
                             subAtrib.setBounds(620, 30,300,30);  
                             panel.add(subAtrib);
                              subAtrib.addItemListener(new ItemListener(){
                               public void itemStateChanged(ItemEvent e){
                                  String str = (String)subAtrib.getSelectedItem();
                                  String str1 = (String)subAtrib.getSelectedItem();
                                  System.out.println("Sub atrib: " + str1 );
                            }
                             

                            });
                        }
                          
      public static void main(String[] args) {
       CRMain crm = new CRMain();

    }
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.