ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
4612
4612
EMPFEHLEN
-
Hallo,
ich habe mal wieder ein kleines Problem: Wie kann ich mittels SWT RadioButton dynamisch generieren und abfragen, welcher aktiv ist?
Wenn ich folgt Button anlege,.....
..... habe ich sie zwar, aber kann mittels Check-Button nicht den angeklickten abfragen, da er sagt button müsse final sein. Wenn button aber final ist, geht die for-Schleife nichtCode java:1 2 3 4 5 6 7 8 9 10 11 12
for(int i=0;i<6;i++){ button = new Button(shell, SWT.RADIO); button.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false, 2, 1)); button.setText("Button "+i); } final Button checkButton = new Button(shell, SWT.NONE); checkButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { //setLabel(button.getText()); } });
-
Hallo,
du kannst die Checkboxen so anlegen wie du es gemacht hast. Du kannst sie dann noch in der Schleife mit in einer Liste schreiben. So kannst du noch auf alle Buttons zugreifen und abfragen.
Willst du eigentlich den SelectionListener nicht den Radiobuttons hinzufügen?
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Du meinst vom Prizip her:
?Code java:1
list.add(button);
Kann ich sie dann nur per list.elementAt(i) ansprechen?
Ich möchte eigentlich folgendes realisieren:
x RadioButton werden dynamisch erstellt. Dann sucht man sich einen aus und drück auf einen (normalen)Button und kann dann entsprechend handeln....
Ich brauche also den Inhalt des RadioButton, besser aber seinen Index.
-
Wenn du den SelectionListener allen Buttons hinzufügst, reagiert er doch immer wenn ein Button gewählt wurde. Mit arg0.getSource() bekommst du auch den Button der gewählt wurde.
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
-
03.09.07 16:32 #6
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
warum nicht einfach:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
/** * */ package de.tutorials; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Shell; /** * @author Thomas.Darimont * */ public class SWTRadioButtonExample { String selectedChoice = "CHOICE_0"; /** * @param args */ public static void main(String[] args) { new SWTRadioButtonExample().open(); } private void open() { Display display = new Display(); Shell shell = new Shell(display); shell.setText("SWTRadioButtonExample"); shell.setLayout(new GridLayout()); Group group = new Group(shell, SWT.SHADOW_IN); group.setText("Select: "); group.setLayout(new RowLayout(SWT.VERTICAL)); SelectionListener selectionListener = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { selectedChoice = (String) ((Button) e.getSource()).getData(); } }; for (int i = 0; i < 10; i++) { Button button = new Button(group, SWT.RADIO); button.addSelectionListener(selectionListener); button.setText("Choice: " + i); button.setData("CHOICE_" + i); } Button btnCheck = new Button(group, SWT.PUSH); btnCheck.setText("check"); btnCheck.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { System.out.println(selectedChoice); } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Wie immer sehr hilfreich und gleich mit Praxisbeispiel. Vielen lieben Dank Thomas!
P.s.: /*ScherzAn*/ Damit klappt's dann auch gleich mit der Nachbarin
/*ScherzAus*/
-
@Ronin-Jay
Das ist ungefähr das was ich meinte.
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
So,
für Leute die soetwas suchen habe ich das Beispiel von Thomas noch mal genommen und als CheckBox umgeschrieben, damit man auch eine multiple Auswahl registriert.
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
package de.tutorials; import java.util.ArrayList; import java.util.Iterator; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Shell; /** * @author Thomas.Darimont * */ public class CheckButtonExample { String selectedChoice = "CHOICE_0"; ArrayList<String> selectedElements = new ArrayList<String>(); /** * @param args */ public static void main(String[] args) { new CheckButtonExample().open(); } private void open() { Display display = new Display(); Shell shell = new Shell(display); shell.setText("CheckButtonExample"); shell.setLayout(new GridLayout()); Group group = new Group(shell, SWT.SHADOW_IN); group.setText("Select: "); group.setLayout(new RowLayout(SWT.VERTICAL)); SelectionListener selectionListener = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { String element = (String) ((Button) e.getSource()).getData(); if (selectedElements.contains(element)) { System.out.println("bereits vorhanden... - lösche es"); selectedElements.remove(element); } else { System.out.println("füge hinzu"); selectedElements.add(element); } //selectedElements.add(element); } }; for (int i = 0; i < 10; i++) { Button button = new Button(group, SWT.CHECK); button.addSelectionListener(selectionListener); button.setText("Choice: " + i); button.setData("CHOICE_" + i); } Button btnCheck = new Button(group, SWT.PUSH); btnCheck.setText("check"); btnCheck.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { //System.out.println(selectedElements.size()); System.out.println(selectedElements); /*for(int i=0;i<selectedElements.size();i++) { System.out.println(selectedElements.get(i)); }*/ Iterator iterator = selectedElements.iterator(); while(iterator.hasNext()) { System.out.println((String)iterator.next()); } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } }
-
Hallo,
ich habe auch ein Problem. Ich habe eine group mit einem Button Details einblenden. Ich möchte, dass beim Klicken auf dieses Button die group neu gerendert wird. Somit soll die group größer werden, Button Details einblenden mache ich unsichtbar und zeige den Button Details ausblenden. Beim Klicken auf diesen Button soll die group wieder kleiner werden, also auch neu gerendert werden.
Warte auf eure Antworten. Danke!
Ähnliche Themen
-
Radiobutton dynamisch bennen
Von chocox im Forum PHPAntworten: 2Letzter Beitrag: 16.01.08, 23:56 -
Radiobutton einfach abfragen
Von marcel331 im Forum VisualStudio & MFCAntworten: 12Letzter Beitrag: 13.02.07, 15:56 -
dynamisch Radiobutton, MYSQL
Von momoxp im Forum PHPAntworten: 1Letzter Beitrag: 01.10.05, 18:12 -
Value von Radiobutton dynamisch belegen
Von marvin69 im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 19.07.05, 12:21 -
Radiobutton aus SQL abfragen
Von vsitor im Forum PHPAntworten: 5Letzter Beitrag: 21.02.04, 20:23





Zitieren



Login





