文本区的DucumentEvent事件
来源:互联网 发布:双头螺纹怎么编程 编辑:程序博客网 时间:2024/05/29 17:49
文本区可以触发DucumentEvent事件,DucumentEvent类在javax.swing.event包中。用户在文本区组件的UI代表的视图中进行文本编辑操作,使得文本区中的文本内容发生变化,将导致该文本区所维护的文档模型中的数据发生变化,从而导致DumumentEvent事件的发生。文本区调用addDumumentListener(DucumentListener listener)方法可以向文本区维护的文档注册监视器。监视器需要实现DumumentListener接口,该接口中有3个方法:
public void changedUpdate(DocumentEvent e)
public void removeUpdate(DocumentEvent e)
public void insertUpdate(DocumentEvent e)
文本调用getDocument()方法返回维护的文档,它是实现Document接口的一个实例。
例子:
创建两个文本区和一个文本框。当用户在文本区左侧进行编辑操作时,文本区右侧将显示左侧文本区中所有和指定模式匹配的字符串。用户事先在文本框中输入[^\s\d\p{Punct}]+,即通过该模式获得左侧文本区的全部单词。
package DucumentEvent;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;public class B extends JFrame implements DocumentListener,ActionListener{JTextField jTextField;JTextArea text1,text2;//JSplitPane jSplitPane;Pattern p;//模式对象Matcher m;//匹配对象B(){text1=new JTextArea();text2=new JTextArea();jTextField=new JTextField("[^\\s\\d\\p{Punct}]+");jTextField.addActionListener(this);JPanel panel=new JPanel();panel.setLayout(new GridLayout(1, 2));panel.add(new JScrollPane(text1));panel.add(new JScrollPane(text2));add(panel, BorderLayout.CENTER);add(jTextField, BorderLayout.NORTH);validate();(text1.getDocument()).addDocumentListener(this);//向文档注册监视器setBounds(120, 120, 260, 270);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubhangdleText();}@Overridepublic void insertUpdate(DocumentEvent e) {//接口方法// TODO Auto-generated method stubchangedUpdate(e);}public void hangdleText() {// TODO Auto-generated method stubtext2.setText(null);String s=text1.getText();p=Pattern.compile(jTextField.getText());//初始化模式对象m=p.matcher(s);while (m.find()) {text2.append("从"+m.start()+"到"+m.end()+":");text2.append(m.group()+":\n");}}@Overridepublic void removeUpdate(DocumentEvent e) {//接口方法// TODO Auto-generated method stubchangedUpdate(e);}@Overridepublic void changedUpdate(DocumentEvent e) {//接口方法// TODO Auto-generated method stubhangdleText();//调用hangdkeText方法}}
阅读全文
0 0
- 文本区的DucumentEvent事件
- android文本的各种事件
- 文本分类的事件模型
- 文本事件
- 文本修改事件:VerifyEvent的各种属性
- android输入文本的监听事件
- html文本显示默认值的事件
- jQuery 文本值改变的事件绑定
- jq激活文本域的 change 事件
- 【JS事件】input文本内容改变可使用的事件
- 选择文本事件
- EditText 文本焦点事件
- 选择文本触发事件
- EditText文本改变事件
- 监控文本改变事件
- 键盘与文本事件
- 文本选中事件
- 基于事件驱动的文本语音转换TTS实例
- 一种从机通信查询的方式,适用于嵌入式以及上位机的从机通信查询方式
- github ssh(frok)
- Hibernate--级联删除
- WCF是什么
- 搜索——水池数目
- 文本区的DucumentEvent事件
- Cannot find KieModule(jbpm-console错误)
- react-router跳转传值
- oracle sql脚本批量执行
- ZooKeeper原理及其在Hadoop和HBase中的应用
- js 插入和添加节点
- flask 应用的架构和部署(flask+gunicorn+nginx)
- SAP ABAP OVS 開發步驟
- win7系统安装--记录备忘