仿记事本,实现简单界面,功能有待于进一步添加。
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.DocumentListener;
public class NotePad implements ActionListener {
JFrame jf=null;
JTextArea jta=null;
JMenuBar jmb=null;//菜单管理栏,管理菜单file,edit,format,view,help
JMenu jm1,jm2,jm3,jm4,jm5;//五个菜单选项,分别对应上述file,edit,format,view,help
JMenuItem jmi11,jmi12;
JMenuItem jmi21,jmi22;
JMenuItem jmi31,jmi32;
JMenuItem jmi41,jmi42;
JMenuItem jmi51,jmi52;
JScrollPane jsp=null;
JScrollBar jsb=null;
public NotePad(){
//create the items used
jm1=new JMenu("File");
jm1.setMnemonic('F');
jmi11=new JMenuItem("open");
jmi11.addActionListener(this);
jmi11.setActionCommand("openFile");
jmi12=new JMenuItem("save");
jmi12.addActionListener(this);
jmi12.setActionCommand("saveAs");
jm1.add(jmi11);
jm1.add(jmi12);
jm2=new JMenu("Edit");
jm2.setMnemonic('E');
jmi21=new JMenuItem("Copy");
jmi22=new JMenuItem("Paste");
jm2.add(jmi21);
jm2.add(jmi22);
jm3=new JMenu("Format");
jmi31=new JMenuItem("Word Wrap");
jmi32=new JMenuItem("Font");
jm3.add(jmi31);
jm3.add(jmi32);
jm4=new JMenu("View");
jm4.setMnemonic('V');
jmi41=new JMenuItem("StatasBar");
jmi42=new JMenuItem("Line");
jm4.add(jmi41);
jm4.add(jmi42);
jm5=new JMenu("Help");
jm5.setMnemonic('H');
jmi51=new JMenuItem("View Help");
jmi52=new JMenuItem("About NotePad");
jm5.add(jmi51);
jm5.add(jmi52);
jf=new JFrame();
//设置文本编辑域
jta=new JTextArea();
//jsp=new JScrollPane(jta);
jf.add(jta,BorderLayout.CENTER);
//设置当前frame的菜单栏
jmb=new JMenuBar();
jmb.add(jm1);
jmb.add(jm2);
jmb.add(jm3);
jmb.add(jm4);
jmb.add(jm5);
jf.setJMenuBar(jmb);
//设置文本编辑域右边的滚动条
jsb=new JScrollBar();
jf.add(jsb,BorderLayout.EAST);
jf.setSize(400,300);
jf.setTitle("Notapad");
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
NotePad np=new NotePad();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand().equals("openFile")){
//设置文件打开选择对话框
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("选择文件");
jfc.showOpenDialog(null);
String filename=jfc.getSelectedFile().getAbsolutePath();
FileReader fr=null;
BufferedReader br=null;
try {
fr=new FileReader(filename);
br=new BufferedReader(fr);
String s="";
String allStr="";
while((s=br.readLine())!=null){
allStr=allStr+s+"\r\n";
System.out.println(s);
}
jta.setText(allStr);
jta.append(allStr);
jta.append(allStr);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
try {
fr.close();
br.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
else if(e.getActionCommand().equals("另存为……")){
//设置文件保存选择对话框
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("save the file as");
jfc.showSaveDialog(null);
String filename=jfc.getSelectedFile().getAbsolutePath();
FileWriter fw=null;
BufferedWriter bw=null;
try {
fw = new FileWriter(filename);
bw=new BufferedWriter(fw);
bw.write(this.jta.getText());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
try {
fw.close();
bw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
}