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.