两个JTextField,一个空着,等着另外一个输入,实现同步显示

chrisjava 2008-05-12 11:26:43
就是,两个JTextField相关联,上面的一个空着,下面的一个用来输入,输入一个字符,上面的JTextField就显示一个字符,输入两个的时候,上面的JTextField也显示两个,其实就是同步,感觉就是你同时在两个JTextField中输入一样。请高手指点应该怎么做,就好给个代码咯
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chrisjava 2008-05-13
  • 打赏
  • 举报
回复
谢谢哦,可以了,可以用的代码
kuyesuifeng 2008-05-13
  • 打赏
  • 举报
回复
同上,用DocumentListener来实现
qusic 2008-05-13
  • 打赏
  • 举报
回复
这个问题很简单!在上面的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();
}

}

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧