首页 > 编程知识 正文

安卓文本编辑器(简易文本编辑器程序设计java)

时间:2023-05-03 18:24:42 阅读:77035 作者:4765

利用swing组件JEditText实现复制,粘贴,剪切功能,JEditText组测MouseListener,实现JPopupMenu右键弹出菜单,依次为JMenuItem,openButton,saveButton注册ActionListener,实现点击事件。

Word.java:

import javax.swing.*;import javax.swing.JComponent.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.awt.Component.*;//文本编辑器,打开.保存.右键复制粘贴剪切功能//java.awt 与 java.awt.event 不是一个类 //public class Word implements MouseListener,ActionListener{ JFrame frame; JPopupMenu popMenu; JPanel panel; JEditorPane editText; JButton openButton; JButton saveButton; JMenuItem paste; JMenuItem copy; JMenuItem cut; JMenuBar menuBar; FileDialog fileDialog; String path;//要保存/打开的文件路径 String name;//要保存/打开的文件名// JMenuItem delete; public static void main(String[] args){ Word word=new Word();}//初始化界面 public Word(){ frame=new JFrame(); panel=new JPanel(); editText=new JEditorPane(); popMenu=new JPopupMenu(); Font font=new Font("宋体",Font.BOLD,20); openButton=new JButton("open"); openButton.setFont(font); saveButton=new JButton("save"); saveButton.setFont(font); panel.setLayout(null); Color color=new Color(191,210,200); panel.setBackground(color); paste=new JMenuItem("paste"); copy=new JMenuItem("copy"); cut=new JMenuItem("cut");// delete=new JMenuItem("delete");//try{// String pathString = "/home/zx/邯郸-tydhd太极体.ttf"; // Font editFont = Font.createFont(Font.BOLD, new File(pathString));// editText.setFont(editFont);//}catch(FontFormatException|IOException fe){// fe.printStackTrace();//} // Font editFont=new Font ("宋体",Font.BOLD,20); editText.setBackground(color); editText.setBounds(0,40,780,760); editText.setFont(font); editText.addMouseListener(this); popMenu.add(paste); popMenu.add(copy); popMenu.add(cut); openButton.addActionListener(this); saveButton.addActionListener(this);// popMenu.add(delete); paste.addActionListener(this); cut.addActionListener(this); copy.addActionListener(this);// delete.addActionListener(this); //button 设置大小太小会导致显示不出来文字 openButton.setBounds(0,10,80,30); saveButton.setBounds(700,10,80,30); saveButton.setBackground(color); openButton.setBackground(color); panel.add(editText); panel.add(openButton); panel.add(saveButton); panel.add(popMenu); frame.setSize(780,800); frame.getContentPane().add(panel); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}//粘贴 public void paste(){ System.out.println("paste"); editText.paste();}//复制 public void copy(){ System.out.println("copy"); editText.copy();}//剪切 public void cut(){ System.out.println("cut"); editText.cut();}//打开文件 public void open(){ System.out.println("Open file!"); fileDialog=new FileDialog(frame,"打开文件",FileDialog.LOAD); fileDialog.setVisible(true); path=fileDialog.getDirectory(); name=fileDialog.getFile(); read();}//保存文件 public void save(){ System.out.println("Save File!"); fileDialog=new FileDialog(frame,"保存文件",FileDialog.SAVE); fileDialog.setVisible(true); path=fileDialog.getDirectory(); name=fileDialog.getFile(); write();}//读文件 public void read(){ try{ File read=new File(path,name); BufferedReader reader=new BufferedReader(new FileReader(read)); //string 类无append()方法 StringBuilder builder=new StringBuilder(); String line; while((line=reader.readLine())!=null){ builder.append(line+"n"); System.out.println(line);} editText.setText(builder.toString()); reader.close();//File类无close()}catch(IOException e){ e.printStackTrace();//作用域到括号截至 read 找不到// read.close();}}//写文件 public void write(){ try{ File writeFile=new File(path,name); BufferedWriter write=new BufferedWriter(new FileWriter(writeFile)); write.write(editText.getText()); write.close();}catch(IOException e){ e.printStackTrace();// writeFile.close();}}//鼠标点击事件 public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mousePressed(MouseEvent e){ if(e.getButton()==MouseEvent.BUTTON3) popMenu.show(e.getComponent(),e.getX(),e.getY());} public void mouseReleased(MouseEvent e){}//MouseEvent 有什么方法可以返回调用组件的String 或代号?//用ActionEvent的话不能屏蔽右键选择 // class SpecialListener implements MouseListener{ public void actionPerformed(ActionEvent e){ System.out.println("我要开始比较啦!"); // if(e.getButton()==MouseEvent.BUTTON3){ String which=e.getActionCommand(); switch(which){ case "paste": paste(); break; case "copy": copy(); break; case "cut": cut(); break; case "open": open(); break; case "save": save();}}} 后续功能:改变字体,插入图片

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。