Problem mit Exception
-
Jetzt haste ihn aber ganz schön zugetextet ...
-
Hehe, das ist eine Spezialität von mir
naja ... ich mein ... ich hab meinen Text schon um einiges gekürzt
-
Hallo,
Jetzt bin ich soweit, daß es keine Fehlermeldung gibt. Aber wenn ich auf "Start" drücke, passiert gar nichts! Es sollte 10 mal "3" ausgeben!/********************** mein Code *********************/
import java.awt.*; import java.awt.event.*; import java.lang.*; public class SuperWuerfel_Applet extends java.applet.Applet implements ActionListener { private Label ausgabe; private CheckboxGroup ursprung = new CheckboxGroup(); private Button start; public void KonstanterWuerfel() { ausgabe.setText("" + 3); } public void ZufallsWuerfel() { } public void ZyklischerWuerfel() { } public void actionPerformed(ActionEvent e) { if (start.getLabel().equals("Start")) { if (ursprung.getSelectedCheckbox().equals("KonstanterWuerfel")) for(int i=0;i<=9;i++) KonstanterWuerfel(); else if (ursprung.getSelectedCheckbox().equals("ZufallsWuerfel")) //for(int i=0;i<=9;i++) ZufallsWuerfel(); else //for(int i=0;i<=9;i++) ZyklischerWuerfel(); } } public void init() { start = new Button("Start"); add(start); start.addActionListener(this); add(new Checkbox("KonstanterWuerfel", false, ursprung)); add(new Checkbox("ZufallsWuerfel", false, ursprung)); add(new Checkbox("ZyklischerWuerfel", false, ursprung)); ausgabe = new Label(); add(ausgabe, Label.LEFT); } }
Gruss
-
mit equal geht da nix, vergleiche mal die checkboxen..
habe nix am programm verändert , nur daß bei druck die drei erscheint..
import java.awt.*; import java.awt.event.*; import java.lang.*; public class SuperWuerfel_Applet extends java.applet.Applet implements ActionListener { private Label ausgabe; private CheckboxGroup ursprung ; private Button start; Checkbox c1; Checkbox c2; Checkbox c3; public void KonstanterWuerfel() { ausgabe.setText("" + 3); } public void ZufallsWuerfel() { } public void ZyklischerWuerfel() { } public void actionPerformed(ActionEvent e) { if (start.getLabel().equals("Start")) { if(ursprung.getSelectedCheckbox()==c1){ for(int i=0;i<=9;i++) KonstanterWuerfel(); } else if (ursprung.getSelectedCheckbox()==c2) //for(int i=0;i<=9;i++) ZufallsWuerfel(); else //for(int i=0;i<=9;i++) ZyklischerWuerfel(); } } public void init() { ursprung = new CheckboxGroup(); start = new Button("Start"); add(start); start.addActionListener(this); ausgabe = new Label(); add(ausgabe, Label.LEFT); c1=new Checkbox("KonstanterWuerfel",ursprung ,false); c2=new Checkbox("ZufallsWuerfel", ursprung,false ); c3=new Checkbox("ZyklischerWuerfel", ursprung ,false); add(c1); add(c2); add(c3); } }
[ Dieser Beitrag wurde am 17.01.2003 um 19:50 Uhr von elise editiert. ]
-
Original erstellt von elise:
**mit equal geht da nix, vergleiche mal die checkboxen..
**selbstverständlich würde das auch mit equal gehen.
Allerdings vergleichst du hier Äpfel mit Birnen.
Du überprüfst, ob ein Object vom Typ Checkbox gleich einem Object vom Typ String ist.
ursprung.getSelectedCheckbox().equals("ZufallsWuerfel")
Das daraus nie ein wahrer Wert wird, ist wohl klar... (auf normalen Wegen)aber einfacher ist das sicherlich mit dem vergleich der beiden Adressen.
ursprung.getSelectedCheckbox()==c1In diesem Fall ists wohl ziemlich egal, was du machst, aber in der Regel
sollte man wissen, was man vergleichen will.Mit == überprüfst du ob es sich um das selbe Object handelt (bzw. vergleichst ob die beiden Adressen gleich sind)
und mit equals kannst du überprüfen, ob es sich um das gleiche Object handelt (also nicht unbedingt das selbe, es kann auch ein anderes sein, aber mit den gleichen Eigenschaften)MfG Ingo
-
Original erstellt von Ingo aka Desert Hawk:
selbstverständlich würde das auch mit equal gehen.
Allerdings vergleichst du hier Äpfel mit Birnen.Also gehts doch nicht...?
Mit == überprüfst du ob es sich um das selbe Object handelt (bzw. vergleichst ob die beiden Adressen gleich sind)
und mit equals kannst du überprüfen, ob es sich um das gleiche Object handelt (also nicht unbedingt das selbe, es kann auch ein anderes sein, aber mit den gleichen Eigenschaften)Das wiederum stimmt denn die equals-Methode ruft intern die hashCode-Methode auf, die für unterschiedliche Objekte mit gleichen Eigenschaften (Inhalt) den selben int-Wert zurückliefert. Darüber kann darauf geschlossen werden, dass es sich um zwei Objekte handelt, die in ihrem Inhalt identisch sind (gesetzenfalls der gute Programmierer hat die hashCode-Methode sauber implementiert).
-
Original erstellt von CengizS:
**
Also gehts doch nicht...?
**Hehe, wenn Du den einen Apfel mit nem anderen vergleichst, dann hast du evtl ne Chance einen ähnlichen Apfel zu erwischen
Aber bei ner Birne liegst du da auf jeden fall verkehrt :p
Vergleichen kann man mit equals ja alles, was ein Object ist, obs Sinn macht ist ja die Frage
-
Eben
-
Original erstellt von Ingo aka Desert Hawk:
**selbstverständlich würde das auch mit equal gehen.
**schon ok, wollte es einfach nur schnell zum laufen kriegen.. so long
[ Dieser Beitrag wurde am 18.01.2003 um 12:22 Uhr von elise editiert. ]
-
Und ich wollt nur ein wenig klugscheissen
naja, und vielleicht jemand anderem noch was beibringen...
Nichts hat halt keine Nebeneffekte