编程语言

今天整理其他的博客,找到自己大学期间做的一个Swing版的记事本,很简单,但是觉得值得留个纪念,就贴这里了。

界面 如下:



 源代码 如下:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.JPopupMenu;
import javax.swing.border.CompoundBorder;


public class NotePad3 extends JFrame{
   JFileChooser jfc=new JFileChooser(){
   public boolean accept(File f) {
   return f.isDirectory()||f.getName().endsWith(".txt")||f.isDirectory()||f.getName().endsWith(".java");
   }
   };
   final JTextArea jta;
   JPopupMenu jpm;
public NotePad3(){

final JFrame f=new JFrame("简易记事本");
    jpm=new JPopupMenu();
    f.setLocation(100,100);
f.setSize(400,450);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jta=new JTextArea();
    f.add(new JScrollPane(jta));
   
    JMenuBar jmb=new JMenuBar();
    JMenu jm1=new JMenu("文件");
    JMenu jm2=new JMenu("编辑");
    JMenu jm3=new JMenu("关于");
    final JMenuItem jmt1=new JMenuItem("新建");
    final JMenuItem jmt2=new JMenuItem("打开");
    final JMenuItem jmt3=new JMenuItem("保存");
    final JMenuItem jmt4=new JMenuItem("退出");
    final JMenuItem jmt5=new JMenuItem("复制");
    final JMenuItem jmt6=new JMenuItem("剪切");
    final JMenuItem jmt7=new JMenuItem("粘贴");
    final JMenuItem jmt9=new JMenuItem("全选");
    final JMenuItem jmt8=new JMenuItem("信息");
    jm1.add(jmt1);//新建
    jmt1.setToolTipText("用于重新建立文本");
    jmt1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
       jta.setText("");
       }
    });
    jm1.add(jmt2);//打开
    jmt2.setToolTipText("请打开文件");
   jmt2.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      int result=jfc.showOpenDialog(NotePad3.this);
//      FileDialog fd=new FileDialog(f, "请打开文件", FileDialog.LOAD);
//      fd.setVisible(true);
      if(result!=jfc.APPROVE_OPTION)return;
   try{
      FileInputStream fis=new FileInputStream(jfc.getSelectedFile());
        byte[] buf=new byte[10*1024];
        int len=fis.read(buf);
        jta.append(new String (buf,0,len));
        fis.close();
      }catch(Exception ex){
      ex.printStackTrace();
      }
      }
   });
    jm1.add(jmt3);//保存
    jmt3.setToolTipText("保存当前文本");
    jmt3.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      int save=jfc.showSaveDialog(NotePad3.this);
      //FileDialog fd=new FileDialog(f,"请保存文件",FileDialog.SAVE);
      //String filestr=fd.getDirectory()+fd.getFile();
      //fd.setVisible(true);
      if(save!=jfc.APPROVE_OPTION)return;
      //if(filestr!=null)
       try{
       FileWriter fw=new FileWriter(jfc.getSelectedFile());
       fw.write(jta.getText());
        fw.close();
         }
         catch(Exception ee){
        ee.printStackTrace();
        }
      
      }
   });
    jm1.add(jmt4);//退出
    jmt4.setToolTipText("退出本程序");
    jmt4.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
     
      System.exit(0);
      }
   });
    jm2.add(jmt5);//复制
    jmt5.setToolTipText("复制文本");
    jmt5.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      jta.copy();
      }
   });
    jm2.add(jmt6);//剪切
    jmt6.setToolTipText("剪切选中文本");
    jmt6.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
   jta.cut();
      }
   });
    jm2.add(jmt7);//粘贴
    jmt7.setToolTipText("粘贴文本");
    jmt7.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      jta.paste();
      }
   });
   jm2.add(jmt9);//全选
   jmt9.setToolTipText("选中当前全部文本");
   jmt9.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      jta.selectAll();
      }
   });
    jm3.add(jmt8);//信息
    jmt8.setToolTipText("查看记事本信息");
    jmt8.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      JOptionPane.showMessageDialog(null,"简易记事本,凯尔特制作");
      }
   });
   //针对弹出菜单进行设置(重复较多)
       JMenuItem jmt10=new JMenuItem("复制");
       jmt10.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      jta.copy();
      }
   });
       JMenuItem jmt11=new JMenuItem("剪切");
       jmt11.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
   jta.cut();
      }
   });
       JMenuItem jmt12=new JMenuItem("粘贴");
       jmt12.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      jta.paste();
      }
   });
       JMenuItem jmt13=new JMenuItem("全选");
       jmt13.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      jta.selectAll();
      }
   });
      
       JMenuItem jmt14=new JMenuItem("关于");
       jmt14.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
      JOptionPane.showMessageDialog(null,"简易记事本,凯尔特制作");
      }
   });
       jpm.add(jmt10);
       jpm.add(jmt11);
       jpm.add(jmt12);
       jpm.addSeparator();
       jpm.add(jmt13);
       jpm.addSeparator();
       jpm.add(jmt14);
        jta.addMouseListener(new MouseAdapter(){
        public void mouseReleased(MouseEvent eee){
           Tanchu(eee);
           }
        });

    jmb.add(jm1);
    jmb.add(jm2);
    jmb.add(jm3);
    f.setJMenuBar(jmb);   
    f.setVisible(true);
   }
   //弹出菜单设置
private   void Tanchu(MouseEvent eee){
        if(eee.isPopupTrigger()){
           jpm.show(jta,eee.getX(),eee.getY());
           }
        }
   public static void main(String args[]){
     NotePad3 np2=new NotePad3();
    }
}

文件名:NotePad3.java

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值