窗口中有很多文本框,单击某个文本框,要怎么获得对应的文本框对象啊?
我的想法是遍历所有的text对象,然后利用text.isFocusControl,这个不是判断该text是否获得焦点的么,
为什么老报错。
还有,我写了一个监听线程,就是一旦某个文本框获得焦点,就做相应的操作。
各位辛苦了!

解决方案 »

  1.   

    getFocusOwner();或者直接在上层组件添加FocusListener,通过focusGained(FocusEvent e)判断e.getSource()来处理
      

  2.   

    不行诶,其实我画了好多文本框,是想在单击某个文本框时产生ModifyEvent,从而获得用户的输入,
    但是因为生成了很多文本框,每次那个ModifyListener只监听最后一个text组件,不解!!!!!--!
    尝试了许久都没弄明白,gongfuliang 再说详细些巴,拿些代码来看看啊。
      

  3.   

    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.FocusEvent;
    import java.awt.event.FocusListener;import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JTextField;public class TestText extends JFrame implements FocusListener { private JTextField[] txts = new JTextField[3]; public TestText() {
    getContentPane().setLayout(new FlowLayout()); for (int i = 0; i < txts.length; i++) {
    txts[i] = new JTextField("Test" + i);
    txts[i].setName("我是Text:" + i);
    txts[i].setPreferredSize(new Dimension(70, 20));
    txts[i].addFocusListener(this); getContentPane().add(txts[i]);
    } setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(300, 200);
    } public void focusGained(FocusEvent e) {
    System.out.println(((JComponent) e.getSource()).getName());
    } public void focusLost(FocusEvent e) { } public static void main(String[] args) {
    TestText frame = new TestText();
    frame.setVisible(true);
    }
    }
      

  4.   

    谢谢大家,是我把问题想复杂了--!
    不过要谢谢gongfuliang,又学到好东西了。荷荷