Tenho dois enum um para cursos e outro para disciplinas
tenho este codigo para prencher duas combos em SWT
final Combo cursos = new Combo(shlSgeRegista, SWT.READ_ONLY);
cursos.setBounds(108, 35, 162, 23);
final Combo disciplinas = new Combo(shlSgeRegista, SWT.READ_ONLY);
disciplinas.setBounds(108, 76, 162, 23);
disciplinas.setEnabled(false);
cursos.setItems(preencheCursos());
cursos.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (cursos.getText()!= ""){
disciplinas.setItems(preencheDisciplinas(cursos.getText()));
disciplinas.setEnabled(true);
}
}
});
}
private static String[] preencheCursos() {
Cursos[] values = Cursos.values();
String[] valuesStr = new String[values.length];
for (int i = 0 ; i < values.length ; ++i) {
valuesStr[i] = values[i].toString();
}
return valuesStr;
}
private static String[] preencheDisciplinas(String curso) {
Disciplinas[] values = Disciplinas.values();
String[] valuesStr = new String[values.length];
for (int i = 0 ; i < values.length ; ++i) {
if ( curso == values.toString())
valuesStr[i] = values[i].getDisciplina();
}
return valuesStr;
}
Mas após selecionar um item da primeira deveria preencher a segunda mas dá erro:
java.lang.IllegalArgumentException: Argument not valid
at org.eclipse.swt.SWT.error(SWT.java:4342)
at org.eclipse.swt.SWT.error(SWT.java:4276)
at org.eclipse.swt.SWT.error(SWT.java:4247)
at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
at org.eclipse.swt.widgets.Combo.setItems(Combo.java:1700)
at sge.RegistaSumario$2.widgetSelected(RegistaSumario.java:165)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
at sge.RegistaSumario.open(RegistaSumario.java:75)
at sge.RegistaSumario.main(RegistaSumario.java:57)
parece que a variavel não está sendo passada corretamente, alguem pode me ajudar?