最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年02月28日 15:27:09   投稿:hebedich  
本文給大家?guī)淼氖鞘褂肑ava制作一個簡單的記事本的代碼,有相同需要的朋友可以參考下

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

復制代碼 代碼如下:

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();  
        } 
    } 
}

效果圖:

 

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

相關文章

  • Java并發(fā)底層實現(xiàn)原理學習心得

    Java并發(fā)底層實現(xiàn)原理學習心得

    本片文章是學習Java并發(fā)底層實現(xiàn)原理的一篇知識心得,對大家學習這個方便的知識很有幫助,一起參考下。
    2018-01-01
  • SpringBoot使用Sa-Token實現(xiàn)權限認證

    SpringBoot使用Sa-Token實現(xiàn)權限認證

    本文主要介紹了SpringBoot使用Sa-Token實現(xiàn)權限認證,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • JAVA偏向鎖的原理與實戰(zhàn)

    JAVA偏向鎖的原理與實戰(zhàn)

    這篇文章主要為大家詳細介紹了JAVA偏向鎖的原理與實戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Java基礎篇之serialVersionUID用法及注意事項詳解

    Java基礎篇之serialVersionUID用法及注意事項詳解

    這篇文章主要給大家介紹了關于Java基礎篇之serialVersionUID用法及注意事項的相關資料,SerialVersionUID屬性是用于序列化/反序列化可序列化類的對象的標識符,我們可以用它來記住可序列化類的版本,以驗證加載的類和序列化對象是否兼容,需要的朋友可以參考下
    2024-02-02
  • Java基礎之數(shù)組詳解

    Java基礎之數(shù)組詳解

    這篇文章主要介紹了Java基礎之數(shù)組詳解,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • JavaWeb學習筆記分享(必看篇)

    JavaWeb學習筆記分享(必看篇)

    下面小編就為大家?guī)硪黄狫avaWeb學習筆記分享(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 在jmeter的beanshell中用java獲取系統(tǒng)當前時間的簡單實例

    在jmeter的beanshell中用java獲取系統(tǒng)當前時間的簡單實例

    這篇文章介紹了在jmeter的beanshell中用java獲取系統(tǒng)當前時間的簡單實例,有需要的朋友可以參考一下
    2013-09-09
  • java中計算集合的交差并集示例代碼

    java中計算集合的交差并集示例代碼

    今天突然想Java如何計算集合的交差并集,主要是看Python語言的時候想起來的。下面這篇文章主要給大家介紹了關于java中計算集合的交差并集的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • 詳解Java的日期時間新特性

    詳解Java的日期時間新特性

    隨著時間的不斷推移,現(xiàn)實的需求也在不斷更新,原先的一些API已經(jīng)難以滿足開發(fā)需求了,從JDK?8之后,為了滿足更多的開發(fā)需求,Java給我們增加了不少關于日期時間的新特性,接下來就帶各位來看看這些新特性有哪些,需要的朋友可以參考下
    2023-06-06
  • 詳解Java中Collection集合的常用方法

    詳解Java中Collection集合的常用方法

    本篇文章給大家?guī)淼膬?nèi)容是關于Java中Collection集合的常用方法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。下面我們就來學習一下吧
    2021-11-11

最新評論

鹿泉市| 巴南区| 台山市| 中牟县| 常德市| 利辛县| 甘德县| 新源县| 元氏县| 邳州市| 长葛市| 黎平县| 广昌县| 绵阳市| 永年县| 石嘴山市| 衡山县| 镇坪县| 土默特左旗| 奇台县| 马公市| 沭阳县| 东海县| 新河县| 长治县| 冀州市| 泸水县| 桃江县| 突泉县| 凤冈县| 潼南县| 怀来县| 英吉沙县| 陕西省| 抚宁县| 沂水县| 龙井市| 巩义市| 聂拉木县| 大化| 上虞市|