我想实现的功能是 鼠标右击会出现《复制》《粘贴》,然后左上角菜单点击可以实现出 打开一个文本文件。最终实现的是可以对比两段源程序的相似度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(); } } } }
添加回答
举报
0/150
提交
取消