Hallo,
ich möchte in einer Group(SWT) alle Buttons ermitten, die Children dieser Group sind:
und das mit folgender Funktion:
ich bekomme aber jedes mal eine ClassCastException. im buttonArray wurden jedoch nur Buttons hinzugefügt durch die if-Bedingung, und toArray() liefert mit nur ein Object[]-Array. Warum funktioniert dann der Cast zu einem Button[]-Array nicht?
Vorher hatte ich dies probiert:
Müßte doch theoretisch auch funktionieren, da alle Children der Group ja Buttons sind!?
Danke, Micha
ich möchte in einer Group(SWT) alle Buttons ermitten, die Children dieser Group sind:
Code:
group = new Group(this, SWT.NONE);
group.setText("document organization");
group.setLayout(rowLayout);
rbFile = new Button(group, SWT.RADIO);
rbFile.setText("local or web file");
rbFile.setSelection(true);
rbSingle = new Button(group, SWT.RADIO);
rbSingle.setText("single");
rbChained = new Button(group, SWT.RADIO);
rbChained.setText("chained");
rbQuery = new Button(group, SWT.RADIO);
rbQuery.setText("query");
rbHierarchy = new Button(group, SWT.RADIO);
rbHierarchy.setText("hierarchy");
und das mit folgender Funktion:
Code:
public Button[] getRadioButtons()
{
Control[] controls = group.getChildren();
ArrayList<Button> buttonArray = new ArrayList<Button>();
for(Control control : controls)
{
if(control instanceof Button)
buttonArray.add((Button)control);
}
return (Button[]) buttonArray.toArray();
}
ich bekomme aber jedes mal eine ClassCastException. im buttonArray wurden jedoch nur Buttons hinzugefügt durch die if-Bedingung, und toArray() liefert mit nur ein Object[]-Array. Warum funktioniert dann der Cast zu einem Button[]-Array nicht?
Vorher hatte ich dies probiert:
Code:
public Button[] getRadioButtons()
{
Button[] rButtons = (Button[]) group.getChildren();
return rbuttons;
}
Müßte doch theoretisch auch funktionieren, da alle Children der Group ja Buttons sind!?
Danke, Micha