您的位置:首页 > 编程语言 > Java开发

自编Java版记事本(基本功能实现,界面尚可)

2013-09-15 12:09 477 查看
import java.awt.*;

import javax.swing.*;

import java.util.*;

import java.awt.datatransfer.*;

import java.awt.event.*;

import java.io.*;

public class Notbook extends JFrame {

 

 static final long serialVersionUID=1L;

 

 private JMenuBar mb;

 private JMenu m1,m2,m3,m4,m5;

 private JMenuItem m1i1,m1i2,m1i3,m1i4,m1i5,m2i1,m2i2,m2i3,m2i4,m2i5,m2i6,m2i7,m3i1,m3i2,m4i1,m5i1,m5i2;

 private JTextArea ta;

 private JPopupMenu jpm;

 private FileDialog fd;

 private FileInputStream fis;

 private FileWriter fw;

 private File f;

 private String str;

 private byte[] txt=new byte[20*1024];

 private int flag=1;

 

 Notbook(){

  init();

  setTitle("记事本");

  setSize(640,480);

  setLocation(100, 100);

  setVisible(true);

  setDefaultCloseOperation(DISPOSE_ON_CLOSE);

  listener();

 }

 

 public void init(){

  mb=new JMenuBar();

  setJMenuBar(mb);

  m1=new JMenu("文件");

  m1.setFont(new Font("宋体",0,12));

  m2=new JMenu("编辑");

  m2.setFont(new Font("宋体",0,12));

  m3=new JMenu("格式");

  m3.setFont(new Font("宋体",0,12));

  m4=new JMenu("查看");

  m4.setFont(new Font("宋体",0,12));

  m5=new JMenu("帮助");

  m5.setFont(new Font("宋体",0,12));

  mb.add(m1);

  mb.add(m2);

  mb.add(m3);

  mb.add(m4);

  mb.add(m5);

  m1i1=new JMenuItem("新建");

  m1i1.setFont(new Font("宋体",0,12));

  m1i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));

  m1i2=new JMenuItem("打开");

  m1i2.setFont(new Font("宋体",0,12));

  m1i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

  m1i5=new JMenuItem("保存");

  m1i5.setFont(new Font("宋体",0,12));

  m1i5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));

  m1i3=new JMenuItem("另存为");

  m1i3.setFont(new Font("宋体",0,12));

  m1i4=new JMenuItem("退出");

  m1i4.setFont(new Font("宋体",0,12));

  m1i4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK));

  m2i1=new JMenuItem("撤销");

  m2i1.setFont(new Font("宋体",0,12));

  m2i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));

  m2i2=new JMenuItem("复制");

  m2i2.setFont(new Font("宋体",0,12));

  m2i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));

  m2i3=new JMenuItem("剪切");

  m2i3.setFont(new Font("宋体",0,12));

  m2i3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));

  m2i4=new JMenuItem("粘帖");

  m2i4.setFont(new Font("宋体",0,12));

  m2i4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));

  m2i5=new JMenuItem("删除");

  m2i5.setFont(new Font("宋体",0,12));

  m2i5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));

  m2i6=new JMenuItem("全选");

  m2i6.setFont(new Font("宋体",0,12));

  m2i6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

  m2i7=new JMenuItem("时间/日期");

  m2i7.setFont(new Font("宋体",0,12));

  m2i7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));

  m3i1=new JMenuItem("自动换行");

  m3i1.setFont(new Font("宋体",0,12));

  m3i2=new JMenuItem("字体");

  m3i2.setFont(new Font("宋体",0,12));

  m3i2.setEnabled(false);

  m4i1=new JMenuItem("状态栏");

  m4i1.setEnabled(false);

  m4i1.setFont(new Font("宋体",0,12));

  m5i1=new JMenuItem("欢迎");

  m5i1.setFont(new Font("宋体",0,12));

  m5i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11,0));

  m5i2=new JMenuItem("关于");

  m5i2.setFont(new Font("宋体",0,12));

  m5i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F12,0));

  m1.add(m1i1);

  m1.addSeparator();

  m1.add(m1i2);

  m1.add(m1i5);

  m1.add(m1i3);

  m1.addSeparator();

  m1.add(m1i4);

  m2.add(m2i1);

  m2.addSeparator();

  m2.add(m2i3);

  m2.add(m2i2);

  m2.add(m2i4);

  m2.add(m2i5);

  m2.addSeparator();

  m2.add(m2i6);

  m2.add(m2i7);

  m3.add(m3i1);

  m3.add(m3i2);

  m4.add(m4i1);

  m5.add(m5i1);

  m5.addSeparator();

  m5.add(m5i2);

  jpm=m2.getPopupMenu();

  ta=new JTextArea();

  ta.setFont(new Font("宋体",0,20));

  add(new JScrollPane(ta));

 }

 

 public void listener(){

  //编辑

  m2.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    Clipboard cl=ta.getToolkit().getSystemClipboard();

    str=ta.getSelectedText();

    if(str==null){

     m2i2.setEnabled(false);

     m2i3.setEnabled(false);

    }

    else{

     m2i2.setEnabled(true);

     m2i3.setEnabled(true);

    }

    boolean b=cl.isDataFlavorAvailable(DataFlavor.stringFlavor);

    if(b){

     m2i4.setEnabled(true);

    }

   }

  });

  //新建

  m1i1.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    new Notbook();

   }

  });

  //打开

  m1i2.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e)

   {

    fd=new FileDialog(new JFrame(),"打开",FileDialog.LOAD);

    fd.setVisible(true);

    str=fd.getDirectory()+fd.getFile();

    if(str!=null)

     try{

      fis=new FileInputStream(str);

      int l=fis.read(txt,0,txt.length);

      ta.setText("");

      ta.insert(new String(txt,0,l),0);

      fis.close();

     }

     catch(IOException ex){

      System.out.println("File read error:"+ex);

     }

   }

  });

  //另存为

  m1i3.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e)

   {

    fd=new FileDialog(new Frame(),"另存为",FileDialog.SAVE);

    fd.setVisible(true);

    str=fd.getDirectory()+fd.getFile();

    f=new File(str);

    try{

     fw=new FileWriter(f);

     fw.write(ta.getText());

     fw.close();

    }

    catch(IOException ex){

     System.out.println("File save error:"+ex);

    }

   }

  });

  //退出

  m1i4.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e)

   {

    System.exit(0);

   }

  });

  //保存

  m1i5.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e)

   {

    fd=new FileDialog(new Frame(),"保存",FileDialog.SAVE);

    fd.setVisible(true);

   }

  });

  //撤销

  m2i1.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    

   }

  });

  //复制

  m2i4.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    ta.paste();

   }

  });

  //粘帖

  m2i2.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    ta.copy();

   }

  });

  //剪切

  m2i3.addActionListe
99c7
ner(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    ta.cut();

   }

  });

  //删除

  m2i5.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    ta.replaceRange("",ta.getSelectionStart(),ta.getSelectionEnd());

   }

  });

  //全选

  m2i6.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    ta.selectAll();

   }

  });

  //时间日期

  m2i7.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    ta.append(new Date().toString());

   }

  });

  //自动换行

  m3i1.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    flag=-flag;

    if(flag==1)

     ta.setLineWrap(false);

    else

     ta.setLineWrap(true);

   }

  });

  m3i2.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e){

    new Ziti();

   }

  });

  //欢迎

  m5i1.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e)

   {

    JOptionPane.showMessageDialog(new JFrame(),"Welcome to my notepad !","Welcome",JOptionPane.INFORMATION_MESSAGE);

   }

  });

  //关于

  m5i2.addActionListener(new ActionListener(){

   public void actionPerformed(ActionEvent e)

   {

    JOptionPane.showMessageDialog(new JFrame(),"新手驾到,欢迎批评","About",JOptionPane.INFORMATION_MESSAGE);

   }

  });

  //右键弹出式菜单

  ta.addMouseListener(

             new MouseAdapter() {

                 public void mouseReleased(MouseEvent e) {

                     if(e.getButton() == MouseEvent.BUTTON3)

                         jpm.show(m2, e.getX()-30, e.getY());

                 }

                

                 public void mouseClicked(MouseEvent e) {

                     if(e.getButton() == MouseEvent.BUTTON1)

                         jpm.setVisible(false);

                 }

             }

         );     

 }

 

 public static void main(String[] args) {

  new Notbook();

 }

}

class Ziti{

 Ziti(){

  JDialog jd=new JDialog(new Frame(),"字体",JDialog.DEFAULT_MODALITY_TYPE);

  jd.setBounds(200,200,400,500);

  jd.setResizable(false);

  jd.setVisible(true);

 }

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 记事本 界面