java jmenuitem 事件_java事件处理2

public classtest{public static voidmain(String args[]){

Component window1=newComponent();

window1.setBounds(40,40,300,200);

}

}class Component extendsJFrame{

JTextArea textArea1,textArea2;

JMenu menu;

JMenuBar menuBar;

JMenuItem copyItem,cutItem,pasteItem;

Component(){

init();

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}voidinit(){

textArea1=new JTextArea(6,10);

textArea2=new JTextArea(6,10);//textArea1.setLineWrap(true);//文本自动换行 w//textArea1.setWrapStyleWord(true);//以单词为界自动换行//textArea2.setLineWrap(true);//文本自动换行//textArea2.setWrapStyleWord(true);//以单词为界自动换行

setLayout(newFlowLayout());

copyItem=new JMenuItem("复制(c)");

cutItem=new JMenuItem("剪贴(t)");

pasteItem=new JMenuItem("粘贴(v)");

menuBar=newJMenuBar();

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(newJScrollPane(textArea1));

add(newJScrollPane(textArea2));

DListener dListener1=newDListener(textArea1,textArea2);

(textArea1.getDocument()).addDocumentListener(dListener1);

AListener aListener1=newAListener(textArea1,textArea2);

copyItem.addActionListener(aListener1);

cutItem.addActionListener(aListener1);

pasteItem.addActionListener(aListener1);

}

}class DListener implementsDocumentListener{

JTextArea textArea1,textArea2;

DListener(JTextArea a,JTextArea b){

textArea1=a;

textArea2=b;

}public voidchangedUpdate(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 voidinsertUpdate(DocumentEvent e){

changedUpdate(e);

}

}class AListener implements ActionListener{//快捷键功能并没有debug到

JTextArea textArea1,textArea2;

AListener(JTextArea a,JTextArea b){

textArea1=a;

textArea2=b;

}public voidactionPerformed(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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值