JAVA 記事本的實現(xiàn)

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FileDialog;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

import javax.swing.JTextArea;

public class dem3 extends JFrame implements ActionListener

{

JPanel jp1, jp2;

JTextArea jTextArea;

JMenuBar jMenubar;

JMenu jMenu;

JMenuItem jm1, jm2;

public static void main(String[] args)

{

// TODO 自動生成的方法存根

dem3 dem3 = new dem3();

}

public dem3()

{

jp1 = new JPanel();

jp2 = new JPanel();

jTextArea = new JTextArea();

jTextArea.setPreferredSize(new Dimension(280, 300));

jMenubar = new JMenuBar();

jMenu = new JMenu("開始");

jm1 = new JMenuItem("打開");

jm2 = new JMenuItem("保存");

jMenu.add(jm1);

jMenu.add(jm2);

jMenubar.add(jMenu);

jm1.addActionListener(this);

jm1.setActionCommand("打開");

jm2.addActionListener(this);

jm2.setActionCommand("保存");

this.add(jp1, BorderLayout.NORTH);

jp1.setLayout(new FlowLayout(FlowLayout.LEFT));

jp1.add(jMenubar);

this.add(jp2, BorderLayout.CENTER);

jp2.add(jTextArea);

this.setSize(300, 400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e)

{

// TODO 自動生成的方法存根

if (e.getActionCommand() == "打開")

{

FileDialog file_open = new FileDialog(this, "打開文件", FileDialog.LOAD);

file_open.setVisible(true);

FileReader fReader = null;

BufferedReader bReader = null;

try

{

String filepath = file_open.getDirectory() + "http://" + file_open.getFile();

fReader = new FileReader(filepath);

bReader = new BufferedReader(fReader);

String str = "";

String strtext = "";

while ((str = bReader.readLine()) != null)

{

strtext = strtext + str + "\r\n";

}

jTextArea.setText(strtext);

} catch (Exception e2)

{

// TODO: handle exception

} finally

{

try

{

bReader.close();

fReader.close();

} catch (IOException e1)

{

// TODO 自動生成的 catch 塊

e1.printStackTrace();

}

}

} else

{

FileDialog file_save = new FileDialog(this, "保存文件", FileDialog.SAVE);

file_save.setVisible(true);

FileWriter fWriter = null;

BufferedWriter bWriter = null;

try

{

String strpath = file_save.getDirectory() + "http://" + file_save.getFile();

fWriter = new FileWriter(strpath);

bWriter = new BufferedWriter(fWriter);

String strtext = jTextArea.getText();

bWriter.write(strtext);

} catch (Exception e2)

{

// TODO: handle exception

} finally

{

try

{

bWriter.close();

fWriter.close();

} catch (IOException e1)

{

// TODO 自動生成的 catch 塊

e1.printStackTrace();

}

}

}

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,419評論 0 2
  • ClientFile.java ServerFile.java SocketFileJFrame.java
    凱哥學(xué)堂閱讀 608評論 0 4
  • /** 記事本程序* 編寫時間:2010.3.12*/import java.awt.BorderLayout;i...
    霙愔閱讀 599評論 0 2
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,217評論 0 4
  • 最近看到兩篇文章,雷鋒網(wǎng)總經(jīng)理謝闐地在自己個人的公眾號發(fā)布長文《智能硬件的時代結(jié)束了:一個行業(yè)集體踏空的教訓(xùn)》和周...
    waisu閱讀 280評論 0 0

友情鏈接更多精彩內(nèi)容