tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
4612
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Ronin-Jay Ronin-Jay ist offline Mitglied Gold
    Registriert seit
    Jun 2003
    Beiträge
    235
    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,.....
    Code 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());
                }
            });
    ..... 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 nicht
     

  2. #2
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    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

    zEriX
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  3. #3
    Ronin-Jay Ronin-Jay ist offline Mitglied Gold
    Registriert seit
    Jun 2003
    Beiträge
    235
    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.
     

  4. #4
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    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

    zEriX
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  5. #5
    Ronin-Jay Ronin-Jay ist offline Mitglied Gold
    Registriert seit
    Jun 2003
    Beiträge
    235
    Zitat Zitat von zerix Beitrag anzeigen
    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

    zEriX
    Das will ich ja eben vermeiden. Ich möchte eine Liste mit RadioButton. Dort soll einer aufgewählt werden und beim Klicken auf dem im Beispiel angegeben 'checkButton' soll mir dann der Index des aktivierten RadioButton ausgegeben werden....
     

  6. #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ß Tom
     
    Java 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

  7. #7
    Ronin-Jay Ronin-Jay ist offline Mitglied Gold
    Registriert seit
    Jun 2003
    Beiträge
    235
    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*/
     

  8. #8
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    @Ronin-Jay
    Das ist ungefähr das was ich meinte.

    MFG

    zEriX
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  9. #9
    Ronin-Jay Ronin-Jay ist offline Mitglied Gold
    Registriert seit
    Jun 2003
    Beiträge
    235
    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();
                }
            }
        }
    }
     

  10. #10
    alex54007 alex54007 ist offline Grünschnabel
    Registriert seit
    Apr 2011
    Beiträge
    2
    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

  1. Radiobutton dynamisch bennen
    Von chocox im Forum PHP
    Antworten: 2
    Letzter Beitrag: 16.01.08, 23:56
  2. Radiobutton einfach abfragen
    Von marcel331 im Forum VisualStudio & MFC
    Antworten: 12
    Letzter Beitrag: 13.02.07, 15:56
  3. dynamisch Radiobutton, MYSQL
    Von momoxp im Forum PHP
    Antworten: 1
    Letzter Beitrag: 01.10.05, 18:12
  4. Value von Radiobutton dynamisch belegen
    Von marvin69 im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 19.07.05, 12:21
  5. Radiobutton aus SQL abfragen
    Von vsitor im Forum PHP
    Antworten: 5
    Letzter Beitrag: 21.02.04, 20:23