當前位置:編程學習大全網 - 源碼下載 - 求壹個用JAVA寫的文本編輯器。

求壹個用JAVA寫的文本編輯器。

導入Java . awt . *;

導入Java . awt . event . *;

導入Java . io . *;

公共類Notepad/*實現ActionListener、MouseListener、MouseMotionListener、WindowListener、ItemListener、KeyListener、TextListener */

{

//成員變量

私有框架主機;//主框架

私有菜單欄MB;//菜單欄

私人菜單mFile,mEdit,mFormat,mHelp//菜單:文件、編輯、格式、幫助

private MenuItem miNew、miOpen、miSave、miSaveAs、miExit//文件菜單項:新建、打開、保存、另存為、退出。

私人菜單miCut,miCopy,miPaste,miDelete//編輯菜單項:剪切、復制、粘貼、刪除。

private MenuItem miFont、miLowtoCapital、miCapitaltoLow、miEncrypt、miDisencrypt//格式菜單項:字體

private MenuItem miAboutNotepad//幫助菜單項:關於記事本

私有TextArea ta//文本區域

私有字符串tempString//臨時字符串,用於存儲要復制粘貼的字符串。

private boolean textvalue changed = false;

private int id _ font//字體

字符串文件名= " ";//上次保存後的文件名和地址。

//構造函數

公共記事本(){

//框架

大型機=新框架(“記事本v0.99通過啟動”);

MB = new MenuBar();

ta = new TextArea (30,60);

ta.setFont(新字體(“Times New Rome”,字體。平原,15));

ta.setBackground(新顏色(0,250,200));

//菜單欄

mFile =新菜單(“文件”);

mEdit =新菜單(“編輯”);

mFormat =新菜單(“格式”);

mHelp =新菜單(" Help ");

//"文件"

miNew = New MenuItem(" New ");

miOpen = new MenuItem(" Open ");

miSave = new MenuItem(" Save ");

miSaveAs = new MenuItem("另存為");

mi Exit = new MenuItem(" Exit ");

//"編輯"

miCut = new MenuItem(" Cut ");

mi Copy = new MenuItem(" Copy ");

mi Paste = new MenuItem(" Paste ");

miDelete = new MenuItem(" Delete ");

//"格式"

mi Font = new MenuItem(" Font ");

miLowtoCapital = new MenuItem(" Low to Capital ");

miCapitaltoLow = new MenuItem(" Capital to Low ");

miEncrypt = new MenuItem(" Encrypt ");

midi sencrypt = new MenuItem(" discrypt ");

//"幫助"

miAboutNotepad = new MenuItem("關於記事本");

//添加文件菜單項

mfile . add(miNew);

mfile . add(miOpen);

mfile . add(miSave);

mfile . add(miSaveAs);

mfile . add(miExit);

//添加編輯菜單項

medit . add(miCut);

medit . add(miCopy);

medit . add(mi paste);

medit . add(miDelete);

//添加格式菜單項

m format . add(mi font);

m format . add(miLowtoCapital);

m format . add(miCapitaltoLow);

m format . add(miEncrypt);

m format . add(midi sencrypt);

//添加幫助菜單項

mhelp . add(miAboutNotepad);

//菜單欄添加菜單

MB . add(mFile);

MB . add(mEdit);

MB . add(m format);

MB . add(mHelp);

//框架添加菜單欄

mainframe . setmenubar(MB);

//初始字符串為空。

tempString =

//添加文本區域

mainFrame.add(ta,BorderLayout。中心);

mainFrame.setSize(800,500);

mainframe . set location(100,100);//起始位置

mainframe . setresizable(true);//無法更改大小。

mainframe . set visible(true);

//大型機. pack();

//////////////////////////////////////////////////////////////////////////////////

///////////////////////////添加壹個監視器。

//////////////////////////////////////////////////////////////////////////////////

//主框架

mainframe . addwindowlistener(newwindowadapter()){//關閉窗口。

public void window closing(window event e){

system . exit(0);

}

});

//文本區域

ta . addkey listener(new key adapter(){

公共void鍵入的(KeyEvent e){

textValueChanged = true//按下鍵盤鍵將導致文本被修改。

}

});

////////////“文件”菜單:////////////////////////

//新建

minew . addactionlistener(new action listener(){

public void action performed(action event e){

ta.replaceRange(",0,ta.getText()。length());//清除文本區域的內容。

文件名= " ";//文件名為空

}

});

//打開

miOpen.addActionListener(新的ActionListener(){

public void action performed(action event e){

FileDialog d=new FileDialog(大型機,“打開文件”,FileDialog。負載);//打開文件對話框

d . addwindowlistener(newwindowadapter(){//關閉文件對話窗口。

public void window closing(window event ee){

system . exit(0);

}

});

d . set visible(true);

File f = new File(d . get directory()+d . getfile());//創建新文件

fileName = d . get directory()+d . getfile();//獲取文件名

char ch[]= new char[(int)f . length()];///用這個文件的長度創建壹個字符數組。

嘗試//異常處理

{

//讀取數據並存儲在字符數組ch中。

buffered reader bw = new buffered reader(new file reader(f));

bw . read(ch);

bw . close();

}

catch(file not found exception Fe){

System.out.println("找不到文件");

system . exit(0);

}

catch( IOException ie){

System.out.println("IO錯誤");

system . exit(0);

}

String s =新字符串(ch);

ta.setText//將文本區域設置為打開文件的內容。

}

});

//保存

miSave.addActionListener(新的ActionListener(){

public void action performed(action event e){

If(filename . equals(" "){//如果文件尚未保存,則文件名為空。

FileDialog d=new FileDialog(大型機,“保存文件”,FileDialog。保存);//保存文件對話框

d . addwindowlistener(newwindowadapter(){//關閉文件對話窗口。

public void window closing(window event ee){

system . exit(0);

}

});

d . set visible(true);

string s = ta . gettext();//獲取輸入文本內容

嘗試//異常處理

{

File f = new File(d . get directory()+d . getfile());//創建新文件

fileName = d . get directory()+d . getfile();//獲取文件名

buffered writer bw = new buffered writer(new file writer(f));//進入文件

bw.write(s,0,s . length());

bw . close();

}

catch(file not found exception Fe _){

System.out.println("找不到文件");

system . exit(0);

}

捕捉(IOException ie_)

{

System.out.println(" IO錯誤");

system . exit(0);

}

}

否則//如果文件已經保存。

{

string s = ta . gettext();//獲取輸入文本內容

嘗試//異常處理

{

File f =新文件(文件名);//創建新文件

buffered writer bw = new buffered writer(new file writer(f));//進入文件

bw.write(s,0,s . length());

bw . close();

}

catch(file not found exception Fe _){

System.out.println("找不到文件");

system . exit(0);

}

捕捉(IOException ie_)

{

System.out.println(" IO錯誤");

system . exit(0);

}

}

}

});

//另存為

misaveas . addactionlistener(new action listener(){

public void action performed(action event e){

FileDialog d=new FileDialog(大型機,“保存文件”,FileDialog。保存);//保存文件對話框

d . addwindowlistener(newwindowadapter(){//關閉文件對話窗口。

public void window closing(window event ee){

system . exit(0);

}

});

d . set visible(true);

string s = ta . gettext();//獲取輸入文本內容

嘗試//異常處理

{

File f = new File(d . get directory()+d . getfile());//創建新文件

buffered writer bw = new buffered writer(new file writer(f));//進入文件

bw.write(s,0,s . length());

bw . close();

}

catch(file not found exception Fe _){

System.out.println("找不到文件");

system . exit(0);

}

捕捉(IOException ie_)

{

System.out.println(" IO錯誤");

system . exit(0);

}

}

});

//退出

mi exit . addactionlistener(new action listener(){///退出程序。

public void action performed(action event e){

system . exit(0);

}

});

/////////////“編輯”菜單:////////////////////////

//剪切

micut . addactionlistener(new action listener(){

public void action performed(action event e){

tempString = ta . getselectedtext();///獲取要復制的內容,臨時存儲在tempString中。

string buffer tmp = new string buffer(ta . gettext());//臨時存儲文本

int start = ta . getselectionstart();//獲取要刪除的字符串的起始位置。

int len = ta.getSelectedText()。長度();//獲取要刪除的字符串的長度。

tmp.delete( start,start+len);///刪除選定的字符串

ta . settext(tmp . tostring());//用新文本設置原始文本

}

});

//復制

miCopy.addActionListener(新的ActionListener(){

public void action performed(action event e){

tempString = ta . getselectedtext();///獲取要復制的內容,臨時存儲在tempString中。

}

});

//粘貼

miPaste.addActionListener(新ActionListener(){

public void action performed(action event e){

string buffer tmp = new string buffer(ta . gettext());//臨時存儲文本

int start = ta . getselectionstart();//獲取要粘貼的位置。

tmp.insert(start,tempString);//簽入要粘貼的內容。

ta . settext(tmp . tostring());//用新文本設置原始文本

}

});

//刪除

miDelete.addActionListener(新ActionListener(){

public void action performed(action event e){

string buffer tmp = new string buffer(ta . gettext());//臨時存儲文本

int start = ta . getselectionstart();//獲取要刪除的字符串的起始位置。

int len = ta.getSelectedText()。長度();//獲取要刪除的字符串的長度。

tmp.delete( start,start+len);///刪除選定的字符串

ta . settext(tmp . tostring());//用新文本設置原始文本

}

});

////////////“格式”菜單:///////////////////////////////////

//字體

miFont.addActionListener(新ActionListener(){

public void action performed(action event e){

最終對話框d =新對話框(主機,“字體”);//新建對話框

d.setLocation( 250,250);//起始位置

d . set layout(new BorderLayout());//表格布局

/////////////上部面板。

Label l _ font = new Label(" font ");//字體標簽

Panel p _ 1 = new Panel();

p _ 1 . add(l _ font);

p _ 1 . set visible(true);

/////////////中的壹些面板。

List font_list = new List (6,false);//字體列表

//添加字體項

font _ list . add(" Plain ");///普通字體

font _ list . add(" Bold ");///粗體

font _ list . add(" Italic ");//斜體

font _ list . additem listener(new myitem listener _ font());//字體增加監視器

Panel p2 = new Panel();

p _ 2 . add(font _ list);

p _ 2 . set visible(true);

///////////////下面板。

按鈕ok =新建按鈕(“OK”);

ok.addActionListener(新ActionListener(){

public void action performed(action event e){

d . dispose();

}

});

ok.setSize(新維度(20,5));

Panel P3 = new Panel();//下部面板

p _ 3 . add(ok);

p _ 3 . set visible(true);

//添加三個面板

d.add(p_1,BorderLayout。北);

d.add(p_2,BorderLayout。中心);

d.add(p_3,BorderLayout。南);

d . pack();

d . addwindowlistener(newwindowadapter(){//關閉對話框窗口。

public void window closing(window event ee){

d . dispose();

}

});

d . set visible(true);

}

});

//將小寫字母轉換成大寫字母

milowtocapital . addactionlistener(新ActionListener(){

public void action performed(action event e){

string s = ta . gettext();//獲取輸入文本內容

string buffer temp = new string buffer(" ");

for(int I = 0;我& lts.length()。i++){

if((int)s.charAt(i)>= 97 & amp& amp(int)s . charat(I)& lt;=122 ){

temp . append((char)((int)s . charat(I)-32));

}

其他

temp.append(s.charAt(i))。

}

s =新字符串(temp);

ta.setText

}

});

//大寫字母轉換成小寫字母

micapitaltolow . addactionlistener(new action listener(){

public void action performed(action event e){

string s = ta . gettext();//獲取輸入文本內容

string buffer temp = new string buffer(" ");

for(int I = 0;我& lts.length()。i++){

if((int)s.charAt(i)>= 65 & amp& amp(int)s . charat(I)& lt;=90 ){

temp . append((char)((int)s . charat(I)+32));

}

其他

temp.append(s.charAt(i))。

}

s =新字符串(temp);

ta.setText

}

});

//加密

miencrypt . addactionlistener(new action listener(){

public void action performed(action event e){

string s = ta . gettext();//獲取輸入文本內容

string buffer temp = new string buffer(" ");

for(int I = 0;我& lts.length()。i++){

if(s.charAt(i)>= 40 & amp& amps . charat(I)& lt;=125){

if(i%2==0){

temp . append((char)(s . charat(I)+1));

}

其他

temp . append((char)(s . charat(I)-1));

}

其他

temp.append(s.charAt(i))。

}

s =新字符串(temp);

ta.setText

}

});

//解密

miDisencrypt.addActionListener(新ActionListener(){

public void action performed(action event e){

string s = ta . gettext();//獲取輸入文本內容

string buffer temp = new string buffer(" ");

for(int I = 0;我& lts.length()。i++){

if(s.charAt(i)>= 40 & amp& amps . charat(I)& lt;=125){

if(i%2==0){

temp . append((char)(s . charat(I)-1));

}

其他

temp . append((char)(s . charat(I)+1));

}

其他

temp.append(s.charAt(i))。

}

s =新字符串(temp);

ta.setText

}

});

////////////“幫助”菜單:////////////////////////////

//關於記事本

miaboutnotepad . addactionlistener(新ActionListener(){

public void action performed(action event e){

最終對話框d =新對話框(主機,“關於記事本”);//新建對話框

TextArea t = new TextArea(" \ n歡迎使用記事本"+" \ n \ n "+" Copyright @ Launching "+" \ n \ n "+"自由軟件"+" \ n \ n "+" v 0.99 ");//添加標簽

t.setSize(新維度(5,5));

t . set editable(false);

d . setresizable(false);//不可調整大小

d .添加(t);

d . pack();

d . addwindowlistener(newwindowadapter(){//關閉對話框窗口。

public void window closing(window event ee){

d . dispose();

}

});

d.setLocation( 100,250);//起始位置

d . set visible(true);

}

});

}

Classmyitemlistener _實現itemlistener {//font listener

public void itemStateChanged(item event e){

id _ font =((Java . awt . list)e . getsource())。getSelectedIndex();

開關(id_font){

案例0:{

ta.setFont(新字體(“Times New Roman”,字體。PLAIN,ta.getFont()。getSize()));//純文本

打破;

}

案例1:{

ta.setFont(新字體(“Times New Roman”,字體。BOLD,ta.getFont()。getSize()));//粗體文本

打破;

}

案例2:{

ta.setFont(新字體(“Times New Roman”,字體。ITALIC,ta.getFont()。getSize()));//斜體文本

打破;

}

}

}

}

/////////////////////////////////////////////////////////////////////-主函數。

公共靜態void main(String arg[]){

記事本測試=新記事本();///創建記事本

}

//////////////////////////////////////////////////////////////////////////////////////////////////

}

  • 上一篇:防黑客冰河木馬
  • 下一篇:5只具有潛力翻倍的氫能源概念股(附名單)
  • copyright 2024編程學習大全網