我想实现的功能是 鼠标右击会出现《复制》《粘贴》,然后左上角菜单点击可以实现出 打开一个文本文件。
最终实现的是可以对比两段源程序的相似度
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();
}
}
}
}
it小贱