Tomas Hubalek napsal(a):
Zdar,
Mam takovy problem: Mam formular (napr. jako JPanel) a chtel bych pred
nejakou akci disablovat vsechny prvky a po skonceni teto akce bych chtel
obnovit stav techto prvku. Naivne prochazim rekurzivne vsechny prvky a
pamatuju si jejich stav, ktery pak obnovuju.
Mam urcite pochybnosti o spravnosti tohoto postupu (protoze disabluju
spoustu prvku u nichz to nejspis neni nutne a mozna i vhodne, jako napr.
javax.swing.CellRendererPane, javax.swing.plaf.metal.MetalComboBoxEditor
apod)., tak by me potesil nejaky tip, jak to udelat lepe…
Dik
Tom
Ahoj,
jestli jsem to dobře pohopil, tak potřebuješ místo JPanelu použít
následující třídu:
public class XPanel extends JPanel {
/**
*
*/
public XPanel() {
super();
}
/**
* @param isDoubleBuffered
*/
public XPanel(boolean isDoubleBuffered) {
super(isDoubleBuffered);
}
/**
* @param layout
*/
public XPanel(LayoutManager layout) {
super(layout);
}
/**
* @param layout
* @param isDoubleBuffered
*/
public XPanel(LayoutManager layout, boolean isDoubleBuffered) {
super(layout, isDoubleBuffered);
}
/**
*
*/
@Override
public void setEnabled(boolean enabled) {
Component[] cs = getComponents();
int n = cs.length;
for (int i = 0; i < n; i++) {
Component c = cs[i];
/* if (!(c instanceof TControl))*/
c.setEnabled(enabled);
}
super.setEnabled(enabled);
}
}
Petr Michálek