當前位置:編程學習大全網 - 源碼下載 - java期末作業!!求大神幫忙!!!

java期末作業!!求大神幫忙!!!

/**

*@author?young

*@Description:?記事本

*@date?2016年5月19日下午5:37:06

*/

import?java.awt.*;

import?java.awt.event.*;

import?java.io.*;

import?java.awt.datatransfer.*;

public?class?NotePad01?{

public?static?void?main(String?args[])?{

TextEdit?TE?=?new?TextEdit("記事本");

}

}

class?TextEdit?extends?Frame?implements?ActionListener?{

MenuBar?m;

Menu?m1,?m2;

MenuItem?xinjian,?dakai,?baocun,?tuichu,?jianqie,?fuzhi,?zhantie;

TextArea?text;

String?filename;

FileDialog?openFD,?saveFD;

BufferedReader?in;

FileReader?read;

BufferedWriter?out;

FileWriter?writer;

Clipboard?cb;

TextEdit(String?s)?{

super(s);

m?=?new?MenuBar();

m1?=?new?Menu("File");

xinjian?=?new?MenuItem("New");

dakai?=?new?MenuItem("Open");

baocun?=?new?MenuItem("Save");

tuichu?=?new?MenuItem("Exit");

m2?=?new?Menu("Edit");

jianqie?=?new?MenuItem("Cut");

fuzhi?=?new?MenuItem("Copy");

zhantie?=?new?MenuItem("Paste");

text?=?new?TextArea();

openFD?=?new?FileDialog(this,?"Open",?FileDialog.LOAD);

saveFD?=?new?FileDialog(this,?"Save",?FileDialog.SAVE);

filename?=?"NoName";

m1.add(xinjian);

m1.addSeparator();

m1.add(dakai);

m1.addSeparator();

m1.add(baocun);

m1.addSeparator();

m1.add(tuichu);

m2.add(jianqie);

m2.addSeparator();

m2.add(fuzhi);

m2.addSeparator();

m2.add(zhantie);

m.add(m1);

m.add(m2);

//?關鍵部分,沒有為cb申請內存,下面對cb操作會出錯

cb?=?new?Clipboard("nothing");

//

setMenuBar(m);

setSize(300,?400);

setVisible(true);

add(text,?"Center");

xinjian.addActionListener(this);

dakai.addActionListener(this);

baocun.addActionListener(this);

tuichu.addActionListener(this);

jianqie.addActionListener(this);

fuzhi.addActionListener(this);

zhantie.addActionListener(this);

addWindowListener(new?WindowAdapter()?{

public?void?windowClosing(WindowEvent?e)?{

System.exit(0);

}

});

}

public?void?actionPerformed(ActionEvent?e)?{

if?(e.getSource()?==?xinjian)?{

text.setText("");

}

if?(e.getSource()?==?dakai)?{

openFD.show();

String?s;

filename?=?openFD.getDirectory()?+?openFD.getFile();

if?(filename?!=?null)?{

try?{

File?file?=?new?File(filename);

read?=?new?FileReader(file);

in?=?new?BufferedReader(read);

while?((s?=?in.readLine())?!=?null)

text.append(s?+?'\n');

in.close();

read.close();

}?catch?(IOException?e2)?{

}

}

}

if?(e.getSource()?==?baocun)?{

saveFD.show();

filename?=?saveFD.getDirectory()?+?saveFD.getFile();

if?(filename?!=?null)?{

try?{

File?file?=?new?File(filename);

writer?=?new?FileWriter(file);

out?=?new?BufferedWriter(writer);

out.write(text.getText(),?0,?(text.getText()).length());

out.close();

writer.close();

}?catch?(IOException?e2)?{

}

}

}

if?(e.getSource()?==?tuichu)?{

System.exit(0);

}

if?(e.getSource()?==?jianqie)?{

//?類text中沒有cut方法,不能使用text.cut

String?s?=?text.getSelectedText();

StringSelection?select?=?new?StringSelection(s);

cb.setContents(select,?null);

text.replaceRange("",?text.getSelectionStart(),

text.getSelectionEnd());

}

if?(e.getSource()?==?fuzhi)?{

//?同上,沒有copy這個方法

String?s?=?text.getSelectedText();

StringSelection?select?=?new?StringSelection(s);

cb.setContents(select,?null);

}

if?(e.getSource()?==?zhantie)?{

//?同上,沒有paste方法

String?s?=?"";

Transferable?t?=?cb.getContents(null);

try?{

if?(t?!=?null

&&?t.isDataFlavorSupported(DataFlavor.stringFlavor))?{

//?因為原系的剪貼板裏有多種信息,?如文字,?圖片,?文件等

//?先判斷開始取得的可傳輸的數據是不是文字,?如果是,?取得這些文字

s?=?(String)?t.getTransferData(DataFlavor.stringFlavor);

//?同樣,?因為Transferable中的DataFlavor是多種類型的,

//?所以傳入DataFlavor這個參數,?指定要取得哪種類型的Data.

//?System.out.println(s);

}

}?catch?(UnsupportedFlavorException?ex)?{

ex.printStackTrace();

}?catch?(IOException?ex)?{

ex.printStackTrace();

}

text.insert(s,?text.getCaretPosition());

}

}

}

  • 上一篇:Jpg顯示源代碼
  • 下一篇:新註冊的微信被封和流量卡有關嗎?
  • copyright 2024編程學習大全網