Java DocumentEvent事件
文本区有一个实现Document接口的示例,这个实例被称为文本区所维护的文档,当文档发生变化时就能触发DocumentEvent事件
注册监视器
addDocumenListener(DocumentListener listen)
//listen是实现了DocumentListener的类
DocumentListener接口
这个接口不是单接口,它有3个方法
public void changedUpdate(DocumentEvent e)
//当文档发生改变的时候public void removeUpdate(DocumentEvent e)
//当文档被移除的时候public void insertUpdate(DocumentEvent e)
//当文档被插入的时候
用户从文本框1中输入单词,文本框2 就会自动排序的例子
首先创建一个Jframe的子类
import javax.swing.*;
import java.awt.*;
import java.lang.reflect.Field;
public class myWindow extends JFrame {
JTextArea jTextArea1,jTextArea2; //两个文本框
myListener documentListener;
myWindow(){
setTitle("单词的自动排序");
setBounds(600,300,600,500);
Container con = this.getContentPane();
con.setBackground(new Color(0x366728)); //设置颜色
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout()); //设置布局
setVisible(true);
init();
}
public void init(){
jTextArea1 = new JTextArea(10,30);
jTextArea2 = new JTextArea(10,30);
jTextArea1.setFont(new Font("",Font.BOLD,15));
jTextArea2.setFont(new Font("",Font.BOLD,15));
jTextArea2.setEditable(false);
add(new JScrollPane(jTextArea1));
add(new JScrollPane(jTextArea2));
documentListener = new myListener(); //监视器实例化
documentListener.setView(this); //监视监视当前对象
(jTextArea1.getDocument()).addDocumentListener(documentListener);
//因为文本区有一个实现document接口的实例,所以要用那个实例添加监视器
validate();
}
}
然后创建实现DocumentListener接口的类
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.util.Arrays;
public class myListener implements DocumentListener {
myWindow view; //窗口类型
public void setView(myWindow view) { //设置监视的对象
this.view = view;
}
@Override
public void insertUpdate(DocumentEvent documentEvent) {
changedUpdate(documentEvent);
}
@Override
public void removeUpdate(DocumentEvent documentEvent) {
changedUpdate(documentEvent);
}
@Override
public void changedUpdate(DocumentEvent documentEvent) {
String str = view.jTextArea1.getText(); //获取文本框1的文本
String regex = "[\\s\\d\\p{Punct}]+"; //正则表达式
String word[] = str.split(regex); //将符合正则表达式的分离后存到变量中
Arrays.sort(word); //用数组类调用自动排序方式进行排序
view.jTextArea2.setText(null); //每次输入都清空一次再重新排序
for (String s:word){
view.jTextArea2.append(s + ",");
}
}
}
最后在main类中测试
public class Example10_9 {
public static void main(String[] args) {
myWindow myWindow = new myWindow();
}
}
最后的效果图
HTML5
HTML5新元素
HTML5迁移
HTML5 样式指南和代码约定
CSS
JavaScript
JavaScript 调试
JavaScript 样式指南和代码约定
JavaScript 闭包
JavaScript 最佳实践
CET4P161
paste
hammer
exceed
metric
vain
soak
compose
item
jar
resource
boom
military