Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Reset su JFrame

  1. #1
    Utente di HTML.it L'avatar di Nilino
    Registrato dal
    Dec 2009
    Messaggi
    15

    Reset su JFrame

    Salve a tutti vi illustro il mio problema:

    Ho un jFrame pieno zeppo di JCheckBox e jTextField e dovrei inserire un bottone che una volta premuto mi riporta tutti questi componenti al loro stato iniziale (Jtextfield che contengono il valore 0 e jcheckBox tutti deselezionati).

    Qualcuno ha un'idea di come posso fare?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Fai un metodo a cui dai in pasto quello che ottieni dal getComponents() del content pane del JFrame.
    Il metodo deve essere ricorsivo.
    Quando non trovi più container (con la ricorsione) allora verifichi se il Component è effettivamente una JTextField e in quel caso imposti quello che desideri, la stessa cosa per gli altri componenti swing.
    al volante son nervoso

  3. #3
    Utente di HTML.it L'avatar di Nilino
    Registrato dal
    Dec 2009
    Messaggi
    15
    ok...a grandi linee ho capito di cosa stai parlando. Non è che però mi potresti far vedere un po' meglio come devo fare? magari i comandi chiave?

    Grazie e scusa la mia ignoranza

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    codice:
    private void setEnabledR(Component[] c, boolean enabled) {
            for (int x = 0; x <
                    c.length; x++) {
                if (c[x] instanceof Container) {
                    setEnabledR(((Container) c[x]).getComponents(), enabled);
                }
                try {
                    if (c[x] instanceof JTextField) {
                        JTextField tf = (JTextField) c[x];
                        // Fai quello che desideri sul JTexfField
                        tf.setEditable(enabled);
                        if (enabled) {
                            Border b = new JTextField().getBorder();
                            tf.setBorder(b);
                        } else {
                            tf.setBorder(null);
                        }
                    } else if (c[x] instanceof JComboBox) {
                        JComboBox tf = (JComboBox) c[x];
                        // Fai quello che desideri sul JComboBox
                        tf.setEnabled(enabled);
                    } else if (c[x] instanceof JRadioButton) {
                        JRadioButton tf = (JRadioButton) c[x];
                        tf.setEnabled(enabled);
                    } else if (c[x] instanceof JButton) {
                        JButton tf = (JButton) c[x];
                        tf.setEnabled(enabled);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
         private void inizializzaGUI() {
              // In questo caso panel contiene tutti i controlli della mia GUI.
              // azione è un intero che serviva a me.
              setEnabledR(panel.getComponents(), (azione == 1 ? true : false));
         }
    Più o meno questo è quello che uso io quando devo fare qualcosa del genere.
    al volante son nervoso

  5. #5
    Utente di HTML.it L'avatar di Nilino
    Registrato dal
    Dec 2009
    Messaggi
    15
    Ok grazie mille adesso provo ad applicarlo al mio caso.

  6. #6
    Utente di HTML.it L'avatar di Nilino
    Registrato dal
    Dec 2009
    Messaggi
    15
    Fantastico! Ha funzionato alla perfezione!!!

    Grazie mille

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da Nilino
    Fantastico! Ha funzionato alla perfezione!!!

    Grazie mille
    Lo so, lo uso da parecchio
    al volante son nervoso

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 © 2025 vBulletin Solutions, Inc. All rights reserved.