Prev
Next

Better:
 1 #use java.awt. *;
 2 #use java.awt.event. *;
 3 #use java.applet.Applet;
 4 
 5 my $which = 0;
 6 my ($choice, $label);
 7 
 8 sub init {
 9 
10   my $this = shift;
11 
12   my $drugs = ["Amitriptyline", "Prozac", "Wellbutrin", 
13 	       "Desipramine", "Crack"];
14 
15   my $religions = ["Java", "Perl", "Scheme", "C++", "Unlambda"];
16 
17   my $items = \{@$drugs};
18 
19   $this->setLayout (new GridLayout (1, 3));
20   $choice = new Choice ($items);
21 
22   $this->add ($choice);
23   $choice->setOnChange (sub {changeLabel ()});
24 
25   my $switcher = new Button ("Switch");
26   add ($switcher);
27 
28   $switcher->setOnClick (
29   sub {
30     $which ^= 1;
31     my $i;
32     #changing items changes actual widget
33     $items [$i++] = $_ for ($which ? @$drugs : @$religions);
34     changeLabel ();
35   });
36 
37   $label = new Label ("Nothing ... yet");
38   $this->add ($label);
39 
40 }
41 
42 sub changeLabel {
43   my $label = shift;
44   $item = $which ? "drug: " : "religion: " . $choice->getSelectedItem ();
45   if ($choice->getSelectedIndex () == 4) {
46     if ($which) {
47       $item .= ". It does a body good!";
48     } else {
49       $item .= ". `ks``s`k`s`kr``s`k`sikk";
50     }
51   }
52   $label->setText ($item);
53 }


Prev
Next