"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

java profi gesucht

fresserettich 28.11.2003 - 22:26 505 4
Posts

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5384
also ich habe folgendes problem:
ich habe die class awt
habe mir eine checkboxgroup angelegt und muss wissen wann und welche checkbox er ausgewählt hat
da brauche ich eine art actionlistener oder? nur ist das prob dass es so was scheinbar nicht gibt

crashman

OC Addicted
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 891
Hoffe das hilft dir
Habs nur schnell in 4 min mit va gemacht. Daher auch die ******* variablennamen.
checkbox.png
Grüne verbindungen sind "actionperformed"
Lila sind die Parameter obiger
blau sind objektübergaben

Sourcecode als txt. Müsste laufen

Aja wie das JFrame vom Awt heisst hab ich vergessen.

Hab zwar seit ewigkeiten nimmer mit dem awt gearbeitet aber so wie ich das seh läuft das so ab.
Du erstellst deine Checkboxes und die Group
dann rufst du von jeder Checkbox die methode
getCheckbox1().setCheckboxGroup(getCheckboxGroup1());

naja und jetzt kannst du halt bei einem beliebigen event mit

getCheckboxGroup1().getSelectedCheckbox()

die gewählte herausfinden
Bearbeitet von crashman am 29.11.2003, 10:13

Ecraft

Here to stay
Registered: Mar 2002
Location:
Posts: 1096

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5384
@crashman mal danke für deinen code nur blicke ich da nicht ganz durch
irgendwie sind da x-kommentare dir mehr verwirren als helfen :D

ich hab des ganze mal so geadded:
CheckboxGroup cbg1 = new CheckboxGroup();

add(new Checkbox("Spiel gegen Computer",cbg1,false));
add(new Checkbox("Spiel gegen Menschen als Server",cbg1,false));
add(new Checkbox("Spiel gegen Menschen als Client",cbg1,false));

jetzt möchte ich mir einen listener über cbg1 legen und dann eben reagieren wenn er mal was geklickt hat

@ecraft sorry aber dein bringt mir null weil ich erstens diese api schon habe und 2tens da nix steht welchen listener man verwenden muss ;)
Bearbeitet von fresserettich am 29.11.2003, 22:57

crashman

OC Addicted
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 891
Ja ist recht schirch das geb ich zu :)
gleich am Anfang:

Die Eventhandling Klasse
Code: PHP
class IvjEventHandler implements java.awt.event.ItemListener {
        public void itemStateChanged(java.awt.event.ItemEvent e) {
           //erste Checkbox
            if (e.getSource() == Checkboxtest.this.getCheckbox2())
                connEtoM1(e);
           //zweite Checkbox
            if (e.getSource() == Checkboxtest.this.getCheckbox1())
                connEtoM2(e);
        };
    };


http://java.sun.com/j2se/1.4.2/docs...emListener.html


damit das aber oben geht musst du die checkboxes wie variablen def.

also mit

private java.awt.Checkbox ivjCheckbox1 = new ......

Oben läuft das ganze halt noch mit setter und getter methoden ab.

In deinem fall also ca so:
Code: PHP
...
CheckboxGroup cbg1 = new CheckboxGroup();
...
private java.awt.Checkbox ivjCheckbox1 = new Checkbox("Spiel gegen Computer",cbg1,false);

danach in der Klasse die den Listener verwendet

Code: PHP
 public void itemStateChanged(java.awt.event.ItemEvent e) {
            if (e.getSource() == this.ivjCheckbox1  )
                //mach irgendwas
 }
das wars

edit: Wenn du eine eigene Listener klasse verwenden willst musst du diese nat. auch anbinden
ivjCheckbox1 .addItemListener(ivjEventHandler);
//In meinem fall heisst sie halt so siehe oben ;)


wenn du es als inner class listener machen willst
Code: PHP
ivjCheckbox1.addItemListener(new java.awt.event.ItemListener() {
		public void itemStateChanged(java.awt.event.ItemEvent e) {
			//mach was
		};
	});
Bearbeitet von crashman am 29.11.2003, 23:58
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz