用java语言的swing组件写的记事本
import java.awt.datatransfer.Clipboard;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
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.JScrollPane;
import javax.swing.JTextArea;
public class MyFrame {
static JFrame jframe;//窗体
static JMenuBar jmenuBar;//菜单栏
static JMenu jmenu1,jmenu2,jmenu3;//菜单
static JTextArea text;//文本框
static JMenuItem newFile,open,save,saveAs,closeItem,copy,cut,stick;//子菜单
static JFileChooser openFile,saveFile;//打开和保存文件窗口
static JScrollPane scroll;//=滚动条
static Clipboard clip;//复制、剪切、黏贴对象
//窗体的基础类
public static void init(){
//基本窗体设置
jframe = new JFrame("记事本");
jframe.setBounds(300,200,650,500);
jmenuBar = new JMenuBar();//菜单栏
text = new JTextArea();//多行文本框
//主菜单
jmenu1 = new JMenu("文件");
jmenu2 = new JMenu("编辑");
jmenu3 = new JMenu("格式");
//将主菜单分别加入到菜单栏
jmenuBar.add(jmenu1);
jmenuBar.add(jmenu2);
jmenuBar.add(jmenu3);
//子菜单
newFile = new JMenuItem("新建");
open = new JMenuItem("打开");
save = new JMenuItem("保存");
saveAs = new JMenuItem("另存为");
closeItem = new JMenuItem("退出");
copy = new JMenuItem("复制");
cut = new JMenuItem("剪切");
stick = new JMenuItem("黏贴");
//将子菜单加入到主菜单中
jmenu1.add(newFile);
jmenu1.add(open);
jmenu1.add(save);
jmenu1.add(saveAs);
jmenu1.add(closeItem);
jmenu2.add(copy);
jmenu2.add(cut);
jmenu2.add(stick);
//设置滚动条(需要的时候出现)
scroll = new JScrollPane(text,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED
,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jframe.setJMenuBar(jmenuBar);
//jframe.add(text);
jframe.add(scroll);
//响应
MyEvent();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//响应类
public static void MyEvent(){
//新建
newFile.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
text.setText(null);
}
});
//打开
open.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
openFile = new JFileChooser();
openFile.showOpenDialog(null);
String filePath = openFile.getSelectedFile().getAbsolutePath();
//System.out.println(str);
File file = new File(filePath);
try {
//从文件读取数据
BufferedReader read = new BufferedReader(new FileReader(file));
String str = null;
//将读取到的数据存放在文本框区域内
while((str = read.readLine()) != null){
text.append(str+"\n");
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
//保存
save.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
saveFile = new JFileChooser();
/*saveFile.showOpenDialog(null);
BufferedWriter bw ;
try {
bw = new BufferedWriter(new FileWriter(saveFile.getSelectedFile().getPath()));
bw.write(text.getText());
bw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}*/
saveFile.showSaveDialog(null);
String fileName = saveFile.getSelectedFile().getAbsolutePath()+".txt";
File file = new File(fileName);
//若文件不存在则新建,否则输出“文件已存在”
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else{
System.out.println("文件已存在");
}
//文本框区域的内容
String content = text.getText();
//将文本区域中的内容保存到文件中
try {
FileOutputStream out = new FileOutputStream(file);
byte[] contentByte = content.getBytes();
out.write(contentByte, 0, contentByte.length);
//BufferedWriter writer = new BufferedWriter(new FileWriter(file));
//writer.write(content);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
//退出
closeItem.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
//复制
copy.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
clip = new Clipboard(text.getSelectedText());
}
});
//剪切
cut.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
clip = new Clipboard(text.getSelectedText());
text.replaceRange("", text.getSelectionStart(), text.getSelectionEnd());
}
});
//黏贴
stick.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String str = clip.getName();
text.replaceRange(str, text.getSelectionStart(), text.getSelectionEnd());
}
});
}
//主函数
public static void main(String[] args){
init();
}
}