java 菜单监听_java窗体菜单监视器问题

该代码示例展示了如何使用Java Swing创建一个窗口,包含两个文本区域和相关菜单,允许用户通过右键点击和菜单选择来复制、剪切和粘贴文本,并能从文件中打开文本进行比较。程序实现了基本的文件I/O操作,用于加载文件内容到文本区域,便于对比源代码的相似度。
摘要由CSDN通过智能技术生成

我想实现的功能是 鼠标右击会出现《复制》《粘贴》,然后左上角菜单点击可以实现出 打开一个文本文件。

最终实现的是可以对比两段源程序的相似度

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.InputEvent;

import java.awt.event.MouseEvent;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import javax.swing.*;

import java.util.*;

public class text2 {

public static void main(String args[])

{

new WindowFlow("程序相似度");

}

}

class WindowFlow extends JFrame{

JTextField field1,field2;

JTextArea text1,text2;

JButton controlButton;                       //按钮

JMenuBar menubar;

JMenu menu;

JLabel one,two;

JPopupMenu menu1;

FileDialog  op;

JMenuItem copy,cut,paste;

WindowFlow(String s){

setTitle(s);

setBounds(200,200,730,460);

setVisible(true);

menu1=new JPopupMenu();

copy=new JMenuItem("复制");

cut=new JMenuItem("剪切");

paste=new JMenuItem("粘贴");

field1=new JTextField(6);

field2=new JTextField(6);

text1=new JTextArea(12,22);                                //文本区1

text2=new JTextArea(12,22);                                //文本区2

menubar=new JMenuBar();                               //菜单条

menu=new JMenu("打开文件");                            //菜单

controlButton=new JButton("计算");               //按钮

JPanel panel=new JPanel();                      //中间容器

final TextField txtField = new TextField(50);

panel.add(text1);

panel.add(text2);

panel.add(field1);

op = new FileDialog(this, "打开文件", FileDialog.LOAD);     //新建对话框

panel.add(controlButton);

menu.addActionListener(this);                    //设置按钮点击监听事件

panel.add(field2);

menubar.add(menu);                                     //菜单添加到菜单条

setJMenuBar(menubar);

menu1.add(copy);

menu1.add(cut);

menu1.add(paste);

add(panel,BorderLayout.CENTER);

add(new JScrollPane(text1),BorderLayout.WEST);

add(new JScrollPane(text2),BorderLayout.EAST);

validate();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==copy)

text1.copy();

else if(e.getSource()==cut)

text1.cut();

else if(e.getSource()==paste)

text1.paste();

else if(e.getSource()==menu){

String str;

op.setVisible(true);

try{

File f1=new File(op.getDirectory(),op.getFile());

FileReader fr=new FileReader(f1);

BufferedReader br=new BufferedReader(fr);

text1.setText("");

while((str=br.readLine())!=null)

text1.append(str+'\n');

fr.close();

}

catch (Exception e1){

e1.printStackTrace();

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值