(效果图)
import java.awt.BorderLayout;
public class NotePad
{
private JFrame jf;
private JMenuBar menu;
private JMenuItem open;
{
private JFrame jf;
private JMenuBar menu;
private JMenuItem open;
private JMenuItem save;
private JMenuItem saveAs;
private JMenu file;
private JMenu help;
private JMenuItem about;
private JTextArea textArea;
private String filePath;
public void show()
{
init();
setStyle();
registHandler();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
//表单控件初始化
private void init()
{
jf = new JFrame();
menu = new JMenuBar();
open = new JMenuItem("打开");
save = new JMenuItem("保存");
saveAs = new JMenuItem("另存为");
file = new JMenu("文件");
help = new JMenu("帮助");
about = new JMenuItem("关于");
textArea = new JTextArea();
}
//表单控件的添加
private void setStyle()
{
jf.setSize(600, 600);
menu.add(file);
menu.add(help);
file.add(open);
file.add(save);
file.add(saveAs);
help.add(about);
jf.add(menu, BorderLayout.NORTH);
JScrollPane jsp = new JScrollPane(textArea);
jf.add(jsp);
}
交互事件
private void registHandler(){ //给打开按钮添加事件监听(方法实现)
open.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
FileDialog fd = new FileDialog(jf);
fd.setVisible(true);
if (fd.getFile() != null)
{
filePath = fd.getDirectory() + fd.getFile();
BufferedReader br = null;
try
{
br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
String line = null;
while ((line = br.readLine()) != null)
{
textArea.append(line + "\n");
}
}
catch (Exception e2)
{
e2.printStackTrace();
}
finally
{
if (br != null)
{
try
{
br.close();
}
catch (IOException e1)
{
e1.printStackTrace();
}
}
}
}
}
});
//给保存按钮添加事件监听(方法实现)
save.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// 如果filePath为null
save(false);
}
});
//给另存为按钮添加事件监听(方法实现)
saveAs.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
save(true);
}
});
}
private void save(boolean isSaveAs)
{
while(filePath == null || isSaveAs)
{
FileDialog fd = new FileDialog(jf);
fd.setVisible(true);
if(fd.getFile()==null)
{
continue;
}
filePath = fd.getDirectory() + fd.getFile();
}
PrintWriter pw = null;
try
{
pw = new PrintWriter(filePath);
pw.println(textArea.getText());
}
catch (Exception e)
{
e.printStackTrace();
}finally{
if(pw != null)
{
pw.close();
}
}
}
//主函数调用菜单界面
public static void main(String[] args)
{
new NotePad().show();
}
}