Erstellen Sie Radiobuttons und Textfelder, bevor Sie Zuhörer hinzufügen, damit Sie sich auf beide beziehen können.
Button[] radioButton = new Button[answers.size()];
for (int i = 0; i < answers.size(); i++) {
String ans = answers.get(i).getValue();
radioButton[i] = new Button(container, SWT.RADIO);
radioButton[i].setText(ans);
}
Text[] textField = new Text[answers.size()];
for (int i = 0; i < answers.size(); i++) {
textField[i] = new Text(container, SWT.SINGLE | SWT.BORDER);
radioButton[i].addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent arg0) {
textField[i].setEnabled(radioButton[i].getSelection());
}});
textField[i].addModifyListener(new ModifyListener(){
@Override
public void modifyText(ModifyEvent arg0) {
// your stuff
}});
}
Sie auch beiden Hörer machen könnten das gleiche Listener-Objekt zu sein (aber um ehrlich zu sein, warum die Mühe - es ist besser, mit einem einzigen Zweck kleineren Zuhörer haben):
private static class MyListener extends SelectionAdapter implements ModifyListener {
public void widgetSelected(SelectionEvent arg) { ... }
public void modifyText(ModifyEvent arg) { ... }
}
Ich habe versucht, die erste Lösung und es hat perfekt funktioniert. Danke vielmals – Ben193