首页 > 代码库 > java事件处理2
java事件处理2
Document事件
这个事件有点特别,需要用getDocument()返回到自己所维护的文档,然后就可以添加监视器
(textArea1.getDocument).addDocumentListener(DocumentListener listen)
DocumentListener接口有三个方法
public void changedUpdate(DocumentEvent e) public void removeUpdate(DocumentEvent e) public void insertUpdate(DocumentEvent e)
单词排序代码、
public class test{ public static void main(String args[]){ Component window1=new Component(); window1.setBounds(40,40,300,200); } } class Component extends JFrame{ JTextArea textArea1,textArea2; JMenu menu; JMenuBar menuBar; JMenuItem copyItem,cutItem,pasteItem; Component(){ init(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void init(){ textArea1=new JTextArea(6,10); textArea2=new JTextArea(6,10); // textArea1.setLineWrap(true);//文本自动换行 w // textArea1.setWrapStyleWord(true);//以单词为界自动换行 // textArea2.setLineWrap(true);//文本自动换行 // textArea2.setWrapStyleWord(true);//以单词为界自动换行 setLayout(new FlowLayout()); copyItem=new JMenuItem("复制(c)"); cutItem=new JMenuItem("剪贴(t)"); pasteItem=new JMenuItem("粘贴(v)"); menuBar=new JMenuBar(); menu=new JMenu("编辑"); menuBar.add(menu); setJMenuBar(menuBar);//这样写才会变一条菜单 menu.add(copyItem); menu.add(cutItem); menu.add(pasteItem); copyItem.setAccelerator(KeyStroke.getKeyStroke(‘c‘));//设置快捷键 cutItem.setAccelerator(KeyStroke.getKeyStroke(‘t‘)); pasteItem.setAccelerator(KeyStroke.getKeyStroke(‘v‘)); copyItem.setActionCommand("copy"); copyItem.setActionCommand("cut"); copyItem.setActionCommand("paste"); add(new JScrollPane(textArea1)); add(new JScrollPane(textArea2)); DListener dListener1=new DListener(textArea1,textArea2); (textArea1.getDocument()).addDocumentListener(dListener1); AListener aListener1=new AListener(textArea1,textArea2); copyItem.addActionListener(aListener1); cutItem.addActionListener(aListener1); pasteItem.addActionListener(aListener1); } } class DListener implements DocumentListener{ JTextArea textArea1,textArea2; DListener(JTextArea a,JTextArea b){ textArea1=a; textArea2=b; } public void changedUpdate(DocumentEvent e){ String regex="[\\s\\d\\p{Punct}]+"; String[] word=(textArea1.getText()).split(regex); Arrays.sort(word); textArea2.setText(null); for(String a:word){ textArea2.append(a+","); } } public void removeUpdate(DocumentEvent e){//这个多了两个抽象方法,现在把他们设置为和上面一样 changedUpdate(e); } public void insertUpdate(DocumentEvent e){ changedUpdate(e); } } class AListener implements ActionListener{//快捷键功能并没有debug到 JTextArea textArea1,textArea2; AListener(JTextArea a,JTextArea b){ textArea1=a; textArea2=b; } public void actionPerformed(ActionEvent e){ String a=e.getActionCommand(); if(a.equals("copy")) textArea2.copy(); else if(a.equals("cut")) textArea2.cut(); else if(a.equals("paste")) textArea1.paste(); } }
java事件处理2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。