我还没有学习JDBC(是这个拼法么?)
你想让你的记本事有保存功能,先学学java.io
你可以把文件保存成文件形式
这是我以前写过的记事本(功能虽不全,但应该有你想要的东西)
package io;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextBook extends JFrame implements ActionListener {
static JTextArea theArea = null; //文本输入的地方
JMenu themenu = null; //菜单
boolean colorchanged = true; // 控制自动换行的,因为不会像windows的那样打个勾
BufferedReader bf = null; //读
BufferedWriter bw = null; //写
String str = null; //好像没什么用
static FileDialog openfile = null, savefile = null; //调用打开,保存对话框
public TextBook() {
super("记事本----しΟν∈→鱈制作");
theArea = new JTextArea();
theArea.setEditable(true);
Container cp = getContentPane();
cp.add(new JScrollPane(theArea));
// cp.setLayout(new BorderLayout());
JMenuBar MBar = new JMenuBar();
MBar.setOpaque(true);
JMenu mfile = buildFileMenu();
mfile.setOpaque(true);
MBar.add(mfile);
JMenu medite = buildEditeMenu();
medite.setOpaque(true);
MBar.add(medite);
JMenu mformat = buildFormatMenu();
mformat.setOpaque(true);
MBar.add(mformat);
setJMenuBar(MBar); //都是菜单
openfile = new FileDialog(this, "打开对话框", FileDialog.LOAD);
openfile.setVisible(false);
savefile = new FileDialog(this,"保存对话框",FileDialog.SAVE);
savefile.setVisible(false);
}
public JMenu buildFileMenu() {
themenu = new JMenu("文件");
JMenuItem newf = new JMenuItem("新建");
newf.addActionListener(this);
JMenuItem open = new JMenuItem("打开");
open.addActionListener(this);
JMenuItem save = new JMenuItem("保存");
save.addActionListener(this);
JMenuItem close = new JMenuItem("关闭");
close.addActionListener(this);
JMenuItem quit = new JMenuItem("退出");
quit.addActionListener(this);
themenu.add(newf);
themenu.add(open);
themenu.add(save);
themenu.add(close);
themenu.addSeparator();
themenu.add(quit);
return themenu;
}
public JMenu buildEditeMenu() {
themenu = new JMenu("编辑");
JMenuItem copy = new JMenuItem("复制");
JMenuItem cut = new JMenuItem("剪切");
JMenuItem paste = new JMenuItem("粘帖");
themenu.add(copy);
themenu.add(cut);
themenu.add(paste);
return themenu;
}
//上面的不要解释吧,就是搞菜单的
public JMenu buildFormatMenu() {
themenu = new JMenu("格式");
JMenuItem format = new JMenuItem("自动换行");
format.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// theArea.setLineWrap(true);
// theArea.setWrapStyleWord(true);
// boolean colorchanged = true;
if (colorchanged) {
((JMenuItem) e.getSource()).setForeground(Color.red);
theArea.setLineWrap(true);
theArea.setWrapStyleWord(true);
} else {
((JMenuItem) e.getSource()).setForeground(Color.black);
theArea.setLineWrap(false);
theArea.setWrapStyleWord(false);
}
colorchanged = !colorchanged;
}
});
JMenuItem fontSize = new JMenuItem("字体");
fontSize.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String size = JOptionPane.showInputDialog(new JFrame(),
"输入你要的字体大小", "字体选择", JOptionPane.YES_NO_OPTION); //得到你输入的字体大小
theArea.setFont(new Font(null, Font.BOLD,
Integer.valueOf(size)));
}
});
themenu.add(format);
themenu.add(fontSize);
return themenu;
}
public void actionPerformed(ActionEvent e) {
//if(e.getSource.equals("new")) //可以这个来判断你按的那个菜单,所以说str没用
//新建事件
str = e.getActionCommand();
if(str == "新建") {
if( !theArea.getText().equals("") ) {
int result = JOptionPane.showConfirmDialog(new JFrame(), "Text" +
"的文字已改变,要保存吗?", "记事本", JOptionPane.YES_NO_CANCEL_OPTION);
// 显示一个对话框,包括确定,否和取消三个按钮,result记录你点的是那个键,根据你的选择判断下一步
if( result == JOptionPane.YES_OPTION ) //{
saveMethod(); //调用保存事件方法
theArea.setText("");
/*}
else if( result == JOptionPane.NO_OPTION )
theArea.setText(""); //消空笔记本*/
}
}
//打开事件
else if(str == "打开") {
openfile.setVisible(true);
try {
File readfile = new File(openfile.getDirectory(), openfile.getFile());
setTitle(readfile.getName() + "----记事本");
theArea.setText("");
bf = new BufferedReader(new FileReader(readfile));
while(bf.readLine() != null) {
theArea.append(bf.readLine() + "\n");
}
bf.close();
} catch (FileNotFoundException e1) {
JOptionPane.showMessageDialog(this,"警告","未找到该文件或文件发生异常",JOptionPane.ERROR_MESSAGE);
} catch (IOException e1) {
e1.printStackTrace();
}
}
else if(str == "保存")
saveMethod(); //调用保存事件方法
else if(str == "关闭" ||str == "退出")
System.exit(0);
}
//保存事件方法
public void saveMethod() {
savefile.setVisible(true);
try {
File writefile = new File(savefile.getDirectory(), savefile.getFile());
bw = new BufferedWriter( new FileWriter(writefile));
bw.write(theArea.getText(), 0, (theArea.getText().length()));
bw.flush();
bw.close();
} catch (FileNotFoundException e1) {
JOptionPane.showMessageDialog(this,"警告","未找到该文件或文件发生异常",JOptionPane.ERROR_MESSAGE);
} catch (IOException e1) {
e1.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
JFrame jf = new TextBook();
jf.setSize(new Dimension(800, 600));
jf.addWindowListener(new WindowAdapter() { //关闭事件
public void windowClosing(WindowEvent e) {
// System.exit(0);
if (!theArea.getText().equals("")) {
int result = JOptionPane.showConfirmDialog(new JFrame(),
"Text" + "的文字已改变,要保存吗?", "记事本",
JOptionPane.YES_NO_CANCEL_OPTION); //一个选择对话框,和前面的一样
if( result == JOptionPane.YES_OPTION )
new TextBook().saveMethod(); //调用保存事件方法
}
System.exit(0);
}
});
jf.setVisible(true);
}
}
下面是人家给我的一段代码:
新建的话用setDocument(new PlainDocument())就可以了!
保存的话用这个代码
JFileChooser fc = new JFileChooser();
int returnVal = fc.showDialog(Notebook.this, "保存");
if (returnVal == JFileChooser.APPROVE_OPTION) {
String savefile = fc.getSelectedFile().toString();
try {
BufferedWriter br = new BufferedWriter(new FileWriter(
savefile));
br.write(jta.getText());
//Print;
br.flush();
br.close();
} catch (Exception ex) {
}