就是,两个JTextField相关联,上面的一个空着,下面的一个用来输入,输入一个字符,上面的JTextField就显示一个字符,输入两个的时候,上面的JTextField也显示两个,其实就是同步,感觉就是你同时在两个JTextField中输入一样。请高手指点应该怎么做,就好给个代码咯

解决方案 »

  1.   

    这个问题很简单!在上面的JTextField上面添加一个文档侦听器,侦听文档内容改变事件,
    再设置下面JTextField的内容即可!
    代码如下:import javax.swing.Box;
    import javax.swing.BoxLayout;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.event.DocumentEvent;
    import javax.swing.event.DocumentListener;
     
    public class SynchroTextFeild extends JFrame implements DocumentListener
    { JTextField textField1 = null;
    JTextField textField2 = null;

    public SynchroTextFeild()
    {
    super("同步的文本框");
    setLayout(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS));
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(300, 200);
    init();
    setLocationRelativeTo(null);//让窗体在屏幕中间显示
    setVisible(true);
    }
    private void init()
    {
    textField1 = new JTextField(20);
    textField2 = new JTextField(20);
    Box b =Box.createHorizontalBox();
    b.add(new JLabel("文本框1:"));
    b.add(textField1);
    getContentPane().add(b);

    b = Box.createHorizontalBox();
    b.add(new JLabel("文本框2:"));
    b.add(textField2);
    getContentPane().add(b);

    //注册文档侦听器
    textField1.getDocument().addDocumentListener(this);

    }
    private void doSynchro()
    {
    textField2.setText(textField1.getText());
    }
    public void changedUpdate(DocumentEvent e)
    {
    //do nothing
    } public void insertUpdate(DocumentEvent e)
    {
    doSynchro();
    } public void removeUpdate(DocumentEvent e)
    {
    doSynchro();
    }
     
    public static void main(String[] args)
    {
    new SynchroTextFeild();
    } }
      

  2.   

    同上,用DocumentListener来实现