這是第一次發佈博客,主要是試試CSDN博客的功能!發現貼代碼的功能還是方便美觀的。
代碼爲用JAVA編寫的簡易版的記事本。包含下拉菜單功能,菜單欄爲打開,保存,退出。可實現記事本的基本操作。
package Note;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
/*
1.畫界面
2.做菜單
3.加功能
4.用io流讀寫
5.打包
*/
class NoteGUI
{
Frame frame = null;
TextArea textArea = null;
MenuBar fileBar = null;
Menu file = null;
MenuItem open = null;
MenuItem save = null;
MenuItem exit = null;
File f = null;
NoteGUI()
{
init();
}
public void init()
{
frame = new Frame("Note");
textArea = new TextArea();
fileBar = new MenuBar();
file = new Menu("文件");
open = new MenuItem("打開");
save = new MenuItem("保存");
exit = new MenuItem("退出");
frame.setBounds(400,300,800,600);
file.add(open);
file.add(save);
file.add(exit);
fileBar.add(file);
frame.add(textArea);
frame.setMenuBar(fileBar);
event();
frame.setVisible(true);
}
public void event()
{
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
}) ;
open.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
openAction();
}
});
save.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
saveAction();
}
});
exit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
frame.dispose();
}
});
textArea.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent ke)
{
if(ke.isControlDown() && ke.getKeyCode() == ke.VK_S)
{
saveAction();
}
if(ke.getKeyCode() == ke.VK_F1 || (ke.isControlDown() && ke.getKeyCode() == ke.VK_O))
{
openAction();
}
}
});
}
private void saveAction()
{
if(f == null)
{
FileDialog fileDialogSave = new FileDialog(frame,"保存文件",FileDialog.SAVE);
fileDialogSave.setVisible(true);
String dirPath = fileDialogSave.getDirectory();
String fileName = fileDialogSave.getFile();
if(dirPath==null && fileName==null)
{
return;
}
f = new File(dirPath,fileName);
}
try
{
FileWriter fr = new FileWriter(f);
String s = textArea.getText();
fr.write(s);
fr.close();
}
catch (IOException ioe)
{
System.out.println("保存異常");
throw new RuntimeException();
}
}
public void openAction()
{
FileDialog fileDialogOpen = new FileDialog(frame,"打開文件",FileDialog.LOAD);
fileDialogOpen.setVisible(true);
String dirPath = fileDialogOpen.getDirectory();
String fileName= fileDialogOpen.getFile();
if(dirPath==null && fileName==null)
{
return;
}
File f = new File(dirPath,fileName);
textArea.setText("");
try
{
BufferedReader bufr = new BufferedReader(new FileReader(f));
String line = null;
while((line=bufr.readLine())!=null)
{
textArea.append(line+"\r\n");
}
bufr.close();
}
catch (IOException ioe)
{
System.out.println("打開異常");
throw new RuntimeException();
}
}
}
class Note
{
public static void main(String[] args)
{
new NoteGUI();
}
}