Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #15685

Re: I need a different approach - suggestions please

From Jail Bush Cronies <do.not@ask.me>
Newsgroups comp.lang.java.programmer
Subject Re: I need a different approach - suggestions please
Date 2012-06-27 18:46 -0400
Organization Jail Bush Cronies
Message-ID <jsg2h5$4o0$1@speranza.aioe.org> (permalink)
References (3 earlier) <jsb265$squ$1@dont-email.me> <jsd4l2$i8s$1@dont-email.me> <jsd95b$e0m$1@dont-email.me> <jsfuro$h7j$1@dont-email.me> <1u-dnQTm2NDQGnbSnZ2dnUVZ_rydnZ2d@earthlink.com>

Show all headers | View raw


On 27/06/2012 6:21 PM, Patricia Shanahan wrote:
> On 6/27/2012 2:44 PM, bilsch wrote:
> ...
>> The listeners all call a statement in the second file:
>>
>> public void actionPerformed(ActionEvent event)
>>
>> so I don't understand how a button listener can be different from
>> another button listener.
>
> You can write several different implementing classes for an interface
> such as ActionListener. You can then create different instances of the
> same implementing class.
>
> For example, you could have a NumberKeyListener class that implements
> ActionListener, and takes a constructor parameter that tells it the
> value associated with its button. On the other hand, I would have a
> different class for dealing with backspace.
>
> Code like:
>
> one.addActionListener(new NumberKeyListener(1));
> two.addActionListener(new NumberKeyListener(2));
>
> would get rid of a lot of checking which button was pressed.

Another option uses the ActionEvent the listener gets passed, a 
parameter that's frequently ignored:

public void actionPerformed (ActionEvent e) {
     JButton btn = (JButton)(e.getSource());
     String btnTxt = btn.getText();
     // btnTxt should be "0", "1", ..., or "9".
     // Do something with it.
}

Of course, this action listener will blow up if used on something other 
than a JButton. You also might not like the results if you later 
localize the button labels using a ResourceBundle or something. :) In 
the event that that sort of thing is likely, the numeric-parameter 
approach Patricia suggested is more robust. Another possibility is:

private static Map<JButton,Integer> buttonMap;

...

for (int i = 0; i < 10; i++) {
     JButton btn = new JButton("" + i);
     btn.addActionListener(new NumberKeyListener());
     buttonMap.add(btn,i);
}

...

public void actionPerformed (ActionEvent e) {
     int btnNum = buttonMap.get(e.getSource());
}

Note: will throw NPE if attached to something other than a button that's 
in buttonMap. Also, for buttonMap to be visible in actionPerformed, 
NumberKeyListener needs to be a nested class of the class with the rest 
of this code.

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-25 15:31 -0700
  Re: I need a different approach - suggestions please markspace <-@.> - 2012-06-25 16:15 -0700
    Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-25 16:47 -0700
      Re: I need a different approach - suggestions please markspace <-@.> - 2012-06-25 18:10 -0700
        Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-26 13:04 -0700
          Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-26 14:01 -0700
          Re: I need a different approach - suggestions please Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-06-26 17:21 -0400
            Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-27 14:44 -0700
              Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-27 14:56 -0700
              Re: I need a different approach - suggestions please Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-06-27 18:13 -0400
                Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-27 18:48 -0700
              Re: I need a different approach - suggestions please Patricia Shanahan <pats@acm.org> - 2012-06-27 15:21 -0700
                Re: I need a different approach - suggestions please Jail Bush Cronies <do.not@ask.me> - 2012-06-27 18:46 -0400
          Re: I need a different approach - suggestions please markspace <-@.> - 2012-06-26 14:25 -0700
            Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-26 14:32 -0700
              Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-26 17:49 -0400
                Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-26 15:20 -0700
                Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-27 17:30 -0700
                Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-27 18:09 -0700
        Re: I need a different approach - suggestions please Wanja Gayk <brixomatic@yahoo.com> - 2012-07-02 11:21 +0200
      Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-25 18:36 -0700
        Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-26 13:24 -0700
          Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-26 13:49 -0700
          Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-26 14:04 -0700
            Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-26 14:34 -0700
              Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-26 16:26 -0700
                Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-26 16:47 -0700
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-26 20:04 -0700
                Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-26 22:18 -0400
                Re: I need a different approach - suggestions please Joshua Cranmer <Pidgeot18@verizon.invalid> - 2012-06-26 22:59 -0400
                Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-27 21:30 -0400
                Re: I need a different approach - suggestions please Wanja Gayk <brixomatic@yahoo.com> - 2012-07-02 11:32 +0200
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-07-02 09:47 -0700
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-26 20:06 -0700
                Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-27 11:42 -0700
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-27 14:09 -0700
                Re: I need a different approach - suggestions please Patricia Shanahan <pats@acm.org> - 2012-06-27 15:11 -0700
                Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-27 21:59 -0400
                Re: I need a different approach - suggestions please Devil's Advocate <legal@hell.org> - 2012-06-27 22:17 -0400
                Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-27 21:40 -0400
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-27 19:12 -0700
                Re: I need a different approach - suggestions please Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-06-27 20:47 -0500
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-27 19:12 -0700
                Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-27 21:28 -0400
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-27 19:14 -0700
                Re: I need a different approach - suggestions please Hydrangea <hydrangea393@foo.mail.quuzzle.edu> - 2012-06-27 22:28 -0400
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-27 21:05 -0700
                Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-27 22:32 -0400
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-27 21:08 -0700
          Re: I need a different approach - suggestions please markspace <-@.> - 2012-06-26 14:10 -0700
            Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-26 14:35 -0700
              Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-26 17:51 -0400
                Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-26 15:20 -0700
                Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-26 19:35 -0400
                Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-26 16:44 -0700
                Re: I need a different approach - suggestions please Arne Vajhøj <arne@vajhoej.dk> - 2012-06-26 22:06 -0400
          Re: I need a different approach - suggestions please Patricia Shanahan <pats@acm.org> - 2012-06-27 08:15 -0700
        Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-27 18:36 -0700
          Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-27 18:54 -0700
            Re: I need a different approach - suggestions please B1ll G4tes <wm.gat3s@micro5oft.quux> - 2012-06-27 22:23 -0400
              Re: I need a different approach - suggestions please Lew <lewbloch@gmail.com> - 2012-06-28 09:55 -0700
            Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-28 04:02 -0700
              Re: I need a different approach - suggestions please Mike Winter <mlwinter@gmail.com> - 2012-06-28 04:55 -0700
                Re: I need a different approach - suggestions please markspace <-@.> - 2012-06-28 07:33 -0700
                [OT] Message IDs (Re: I need a different approach - suggestions please) Mike Winter <mlwinter@gmail.com> - 2012-06-28 08:45 -0700
                Re: [OT] Message IDs (Re: I need a different approach - suggestions please) markspace <-@.> - 2012-06-28 09:39 -0700
                Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-28 09:44 -0700
                Re: I need a different approach - suggestions please Joshua Cranmer <Pidgeot18@verizon.invalid> - 2012-06-28 12:51 -0400
                Re: I need a different approach - suggestions please markspace <-@.> - 2012-06-28 09:58 -0700
              Re: I need a different approach - suggestions please markspace <-@.> - 2012-06-28 07:32 -0700
  Re: I need a different approach - suggestions please Roedy Green <see_website@mindprod.com.invalid> - 2012-06-26 03:49 -0700
    Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-26 13:59 -0700
  Re: I need a different approach - suggestions please Patricia Shanahan <pats@acm.org> - 2012-06-29 08:12 -0700
    Re: I need a different approach - suggestions please Gene Wirchenko <genew@ocis.net> - 2012-06-29 10:02 -0700
    Re: I need a different approach - suggestions please bilsch <bilsch01@gmail.com> - 2012-06-29 13:07 -0700

csiph-web