Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    168

    Gestire jbutton creati con ciclo for

    Buonasera!!

    Ho un pannello. Con un ciclo for ho creato 10 bottoni 'seleziona' e 10 'textBox' e li ho aggiunti al pannello. Premendo ogni bottone 'seleziona' si deve aprire un 'nuovoFrame' al quale viene aggiunto un 'nuovoPannello'. Questo 'nuovoPannello' contiene un gruppo di 'radioButton' il cui testo è impostato attraverso 'lista'.

    L'utente per ogni bottone 'seleziona' che preme deve poter selezionare un solo 'radioButton' e cliccare sul bottone 'ok'. Il 'radioButton' selezionato deve essere inserito nel 'textBox' posizionato accanto al bottone 'seleziona'.

    Ho pensato di fare così:

    codice:
    // nel costruttore
    for(int j = 0; j <= 9; j++){
     seleziona = new JButton("Seleziona");
     pannello.add(seleziona);
    
     textBox = new JTextField("", 20);
     pannello.add(textBox);
    
     nuovoFrame = new JFrame();
     nuovoPannello = new JPanel();
    
     ok = new JButton("OK");
     nuovoPannello.add(ok);
    
     buttonGroup = new ButtonGroup();
     radioListener = new JRadioButtonListener();
     buttonsListener = new GestoreBottoni();
     buttonSelezionaListener = new JButtonSelezionaListener();
    
     for(int i = 0; i<= 6; i++) {
        
      radioButton[i] = new JRadioButton();
      radioButton[i].setText(String.valueOf(lista[i]));
      
      radioButton[i].addActionListener(radioListener);
      buttonGroup.add(radioButton[i]);
      
      nuovoPannello.add(radioButton[i]);
     }
     nuovoFrame.add(nuovoPannello);
    
     ok.addActionListener(buttonsListener);
     seleziona.addActionListener(buttonSelezionaListener);
    }
    
    private class GestoreBottoni implements ActionListener {
     public void actionPerformed(ActionEvent e) {
       
      if(e.getSource() == ok) {
       buttonGroup.clearSelection();
       nuovoFrame.setVisible(false);
      }
     }
    }
    
    class JButtonSelezionaListener implements ActionListener {
     public void actionPerformed(ActionEvent e) {
      nuovoFrame.setVisible(true);
     }
    }
    
    class JRadioButtonListener implements ActionListener {
     public void actionPerformed(ActionEvent e) {
      String selezione = e.getActionCommand();  
      textBox.setText(selezione);
     }
    }
    In questo modo 'funziona' tutto, ma viene impostato soltanto l'ultimo textBox, qualsiasi bottone 'seleziona' venga premuto. Come potrei risolvere?
    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    168
    Nessun aiuto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.