Re: need help on this.
 
On 4/30/2013 9:18 AM, wee wrote:
i have this code:
public class ArrayUI extends JFrame {
    public JPanel pane = new JPanel();
    public JTextField[] item = new JTextField[20];
    public ArrayUI() {
        super("title");
        FlowLayout fl = new FlowLayout();
        setLayout(fl);
        Handler handle = new Handler();
        for (int i = 0; i < item.length; i++) {
            item[i] = new JTextField(("Text here " + i), 10);
            item[i].addMouseListener(handle);
            pane.add(item[i]);
        }
        add(pane);
        pack();
    }
    private class Handler extends MouseAdapter {
              public void mouseClicked(MouseEvent e){
              }
      // i want to get the index of the array (item[]) of the JTextField
      // object that received the mouseClicked action.
      // any idea how i can do that?
      // using the getSource() method returns the object itself,
      // not the index of the array. help please..
     Get the source object, then walk through the array, index
by index, until you find it.
     My question, though: Why do you want the array index?  If
the answer is "Because there are other arrays with associated
information, and I need the index to access it," there may be
better approaches.  Here are a few:
     - You might store the extra information directly on the
       JTextField object, possibly with setName() -- or maybe
       with setAction(), if that's more appropriate.
     - If none of the JTextField's attributes seem a suitable
       home for what you want to store, write a WeeTextField
       class that extends JTextField and just carries the
       extra information around.  Note that you needn't write
       much code; all the real work happens in the JTextField
       superclass, and you just deal with the "decorations."
     - Put the extra information in the Handler class, and use
       a separate Handler instance for each JTextField instead
       of making them all share the same instance.
    
}
}
-- 
Eric Sosman
esosman@comcast-dot-net.invalid