zoukankan      html  css  js  c++  java
  • 记事本

    package demo;
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
     
    public class Calculator {
        
        JFrame f;
        MenuBar mb;    
        Menu mu;      
        JTextArea jta;
        MenuItem openItem, saveItem, closeItem;   
        FileDialog openDia,saveDia;   
        
        File file;
        
        public Calculator()
        {
            init();
        }
        public void init()
        {
            f=new JFrame("简易记事本");
            mb=new MenuBar();
            mu=new Menu("文件");
            openItem=new MenuItem("打开");
            saveItem=new MenuItem("保存");
            closeItem=new MenuItem("退出");
            jta=new JTextArea();
            
            f.add(jta);
            
            mu.add(openItem);
            mu.add(saveItem);
            mu.add(closeItem);
            
            mb.add(mu);
            
            f.setMenuBar(mb);
            
            openDia=new FileDialog(f, "打开", FileDialog.LOAD);
            saveDia=new FileDialog(f, "保存", FileDialog.SAVE);
            
            f.setBounds(200, 300, 500, 400);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setVisible(true);
            
    
            event();
            
        }
        
        public void event()
        {
            openItem.addActionListener(new ActionListener()
            {
    
                public void actionPerformed(ActionEvent e) {
                    
                    openFile();
                                
                }
                
                
            });
            
    
            saveItem.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e) {
                 saveFile();    
                    
                }
                
                
            });
        
            jta.addKeyListener(new KeyAdapter()
            {
                public void keyPressed(KeyEvent e){
        
                    if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S)
                    {
                         saveFile();    
                    }
                }
            });
            
        
            closeItem.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e) {
                    System.exit(0);
                    
                }
                
            });
        }
        
    
        public void openFile()
        {
            openDia.setVisible(true); 
            String dirPath=openDia.getDirectory();
            String fileName=openDia.getFile();
            
        
            if(dirPath==null || fileName==null)
                return ;
            
            jta.setText(""); 
            file=new File(dirPath,fileName); 
            
            try
            {
                BufferedReader br = new BufferedReader(new FileReader(file));
     
                String line = null;
     
                while((line=br.readLine())!=null)
                {
                    jta.append(line+"
    ");
                }
     
                br.close();
            }
            catch (IOException ex)
            {
                throw new RuntimeException("读取失败");
            }
        }
        public void saveFile()
        {
        
            if(file==null)
            {
                saveDia.setVisible(true);
                
                String dirPath = saveDia.getDirectory();
                String fileName = saveDia.getFile();
                
                if(dirPath==null || fileName==null)
                    return ;    
                file = new File(dirPath,fileName);                
            }
            
    
            try {
                BufferedWriter bw=new BufferedWriter(new FileWriter(file));
                
                String info=jta.getText();  
                
                bw.write(info); 
                bw.flush();
                bw.close();
                
            } catch (IOException e1) {
                
                throw new RuntimeException();
            }        
            
        }
        
        
        public static void main(String[] args) {
            
              
            new Calculator();
        }
     
    }

    运行截图

  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    详解以太坊世界状态
    VDF 不是工作量证明
    以太坊:Go-Ethereum: 编译运行
    【转】理解分布式账本技术: 经济学视角
    Counterfactual 项目:广义的以太坊状态通道
    Solidity 安全:已知攻击方法和常见防御模式综合列表
    Verge 攻击解析
    以太坊区块链的轻客户端
  • 原文地址:https://www.cnblogs.com/chenguohhw/p/11914748.html
Copyright © 2011-2022 走看看