一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 使用Java制作一個簡單的記事本

使用Java制作一個簡單的記事本

2019-12-10 13:54hebedich JAVA教程

本文給大家?guī)淼氖鞘褂肑ava制作一個簡單的記事本的代碼,有相同需要的朋友可以參考下

通過使用Java的Swing、IO來實現(xiàn)一個簡單記事本,實現(xiàn)打開指定的text文本文件,然后將text文件的內(nèi)容加載到Swing組件中,然后在Swing組件中編輯記事本內(nèi)容,然后同菜單的保存選項將編輯后的內(nèi)容保存到text文件中。代碼如下:

 

復(fù)制代碼代碼如下:

import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import java.nio.charset.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
/**
*功能:簡單記事本
*2011-12-25
*/
public class SimpleNotepad implements ActionListener{
    private Frame frame;
    private FileDialog fd_load;
    private FileDialog fd_save;
    private TextArea ta;
    private String file = "";
    private MenuItem save;
    private RandomAccessFile raf;
    private FileChannel fci;
    private FileLock flock;
    private CharsetEncoder encoder;
    private CharsetDecoder decoder;
    public static void main( String args[]) {
        new SimpleNotepad().init();
    }
    public void init(){
        frame = new Frame("My Notepad");
        MenuBar mb = new MenuBar();
        Menu file = new Menu("文件");
        Menu help = new Menu("幫助");
        MenuItem open = new MenuItem("打開");
        save = new MenuItem("保存");
        save.setEnabled(false);
        file.add(open);
        file.add(save);
        mb.add(file);
        mb.add(help);      
        frame.setMenuBar(mb);
        ta = new TextArea();
        frame.add(ta,"Center");    
        open.addActionListener(this);
        save.addActionListener(this);
        frame.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }  
        });  
        frame.setSize(600,400);
        frame.setLocation(300,100);
        frame.setVisible( true);      
        fd_load = new FileDialog(frame,"打開文件",FileDialog.LOAD);
        fd_save = new FileDialog(frame,"保存文件",FileDialog.SAVE);
        Charset charset = Charset.forName(System.getProperty("file.encoding"));
        encoder = charset.newEncoder();
        decoder = charset.newDecoder();
    }
    public void actionPerformed(ActionEvent e){
        String s = e.getActionCommand();
        if(s.equals("打開")){
            fd_load.setVisible(true);
            String d = fd_load.getDirectory();
            String f = fd_load.getFile();
            if((d != null) && (f != null)){
                String destfile = d + f;
                if(destfile.equals(file)){
                    return;
                }else{
                    this.closeFile();
                    file = destfile;
                    this.loadFile();
                }  
            }
        }else if(s.equals("保存")){
            this.saveFile();
        }
    }  
    public void loadFile(){
        try{
            raf = new RandomAccessFile(file,"rw");
            fci = raf.getChannel();
            flock = fci.tryLock();
            if(flock == null){
                ta.setText("");
                JOptionPane.showMessageDialog(null, 
                    "文件正在使用中,無法以獨占的方式打開!",
                    "錯誤提示", JOptionPane.ERROR_MESSAGE);   
                file = "";
                raf.close();
                raf = null;
            }else{
                int length = (int)fci.size();
                ByteBuffer bb = ByteBuffer.allocate(length);
                fci.read(bb);
                bb.flip();
                CharBuffer cb = decoder.decode(bb);
                ta.setText(cb.toString());
                frame.setTitle("My Notepad - " + file);
                save.setEnabled(true);
            }
        }catch(IOException e){
            e.printStackTrace();   
        }
    }
    public void saveFile(){
        String content = ta.getText();
        try{
            CharBuffer cb = CharBuffer.wrap(content.toCharArray());
            ByteBuffer bb = encoder.encode(cb);
            raf.setLength(0);
            fci.write(bb);
            fci.force(true);
        }catch(IOException e){
            e.printStackTrace();   
        }
    }
    public void closeFile(){
        try{
            if(flock != null){
                flock.release();
            }
            if(raf != null){
                raf.close();   
            }
            file = "";
            frame.setTitle("My Notepad");
            save.setEnabled(false);
        }catch(IOException e){
            e.printStackTrace();   
        }  
    }  
}

 

效果圖:

使用Java制作一個簡單的記事本

以上就是本文的全部內(nèi)容了,希望大家能夠喜歡。

延伸 · 閱讀

主站蜘蛛池模板: 亚洲 欧美 清纯 校园 另类 | 99久久精品久久久久久清纯 | 久久九九有精品国产23百花影院 | 亚洲欧洲淘宝天堂日本 | 脱女学小内内摸出水网站免费 | 欧美日韩国产手机在线观看视频 | 欧美一区二区三区精品国产 | 日本网络视频www色高清免费 | 国产成人亚洲精品乱码在线观看 | 国产在线精品亚洲第一区香蕉 | 四虎影在线永久免费观看 | 白丝美女用胸伺候主人 | 亚洲精品一二三四 | 日韩一 | 40岁女人三级全黄 | 日韩欧一级毛片在线播无遮挡 | 91麻豆精品国产91久久久 | 国产精品66福利在线观看 | 国内亚州视频在线观看 | 香蕉eeww99国产在线观看 | 日本在线不卡免 | 99久久精彩视频 | 青青热久免费精品视频精品 | v视界影院.vsjla | 日韩高清在线免费看 | 国产1区2区三区不卡 | 日韩一区二区在线视频 | 四虎永久在线精品国产馆v视影院 | 欧美日韩亚洲国内综合网香蕉 | 99精品久久99久久久久久 | 久久九九精品国产自在现线拍 | 高清视频在线播放ww | 欧美精品一区二区三区免费观看 | a天堂视频 | dasd-698黑人在线播放 | 国产91精品在线播放 | 动漫美女人物被黄漫在线看 | 好深快点再快点好爽视频 | 国产精品原创永久在线观看 | 国产美女下面流出白浆视频 | 精品国产乱码久久久久久免费流畅 |