JavaのスイングとIOを使用して簡単なメモ帳を実装し、指定されたテキストファイルの開くことを実装し、テキストファイルのコンテンツをスイングコンポーネントにロードし、スイングコンポーネントのメモ帳コンテンツを編集してからオプションを保存する同じメニュー編集されたコンテンツをテキストファイルに保存します。コードは次のとおりです。
コードコピーは次のとおりです。
java.io.*をインポートします。
Java.nio。*をインポートします。
java.nio.channels。*;
Java.nio.Charset。*;
java.awt。*;
java.awt.event。*;
javax.swing.joptionpaneをインポートします。
/**
*関数:シンプルなノートブック
*2011-12-25
*/
Public Class SimpleNotePadはActionListenerを実装しています{
プライベートフレームフレーム。
private filedialog fd_load;
private filedialog fd_save;
Private Textarea ta;
プライベート文字列file = "";
Private Menuitem Save;
プライベートランダムアクセスファイルRAF;
プライベートフィルチャンネルFCI;
プライベートフィルロックの群れ;
プライベートcharSetenCoderエンコーダー。
プライベートチャーセットデコーダーデコーダー。
public static void main(string args []){
new simplenotepad()。init();
}
public void init(){
frame = new Frame( "My NotePad");
Menubar MB = new Menubar();
メニューファイル=新しいメニュー( "ファイル");
メニューヘルプ=新しいメニュー( "help");
menuitem open = new Menuitem( "Open");
save = new Menuitem( "Save");
save.setEnabled(false);
file.add(open);
file.add(save);
mb.add(file);
Mb.Add(ヘルプ);
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、 "open file"、filedialog.load);
fd_save = new filedialog(frame、 "save file"、filedialog.save);
charset charset = charset.forname(system.getProperty( "file.Encoding"));
encoder = charset.newencoder();
decoder = charset.newdecoder();
}
public void actionperformed(ActionEvent e){
文字列s = e.getActionCommand();
if(s.equals( "open")){
fd_load.setVisible(true);
文字列d = fd_load.getDirectory();
文字列f = fd_load.getfile();
if((d!= null)&&(f!= null)){
文字列destfile = d + f;
if(destfile.equals(file)){
戻る;
}それ以外{
this.closefile();
file = destfile;
this.loadfile();
}
}
} else if(s.equals( "save")){
this.savefile();
}
}
public void loadfile(){
試す{
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;
}それ以外{
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 motepad-" + file);
save.setEnabled(true);
}
} catch(ioException e){
e.printstacktrace();
}
}
public void savefile(){
文字列content = ta.getText();
試す{
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(){
試す{
if(flock!= null){
flock.release();
}
if(raf!= null){
raf.close();
}
file = "";
frame.settitle( "my motepad");
save.setEnabled(false);
} catch(ioException e){
e.printstacktrace();
}
}
}
複製画像:
上記はこの記事のすべてです。あなたがそれを気に入ってくれることを願っています。