public class MyNotepad {
static JFrame frame;
static JScrollPane textScroll = null;
static JTextArea textArea = null;
public static final int FRAME_WIDTH = 300;
public static final int FRAME_HEIGHT = 300; public static final void init() {
frame = new JFrame("记事本");
// ImageIcon image = new ImageIcon("src/myPicture.jpg");
// frame.setIconImage(image.getImage());
// 1、菜单条
MenuBar menuBar = new MenuBar();
frame.setMenuBar(menuBar); // 2、创建菜单
Menu fileMenu = new Menu("文件(F)");
Menu editMenu = new Menu("编辑(E)");
Menu formatMenu = new Menu("格式(O)");
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(formatMenu); // 3、文件子菜单项
MenuItem openFile = new MenuItem("打开文件", new MenuShortcut(0x4F, true));
MenuItem newFile = new MenuItem("新建", new MenuShortcut(0x4E, true));
MenuItem save = new MenuItem("保存", new MenuShortcut(0x53, false));
MenuItem saveAs = new MenuItem("另存为", new MenuShortcut(0x53, true));
MenuItem close = new MenuItem("关闭", new MenuShortcut(0x57, false));
MenuItem exit = new MenuItem("退出");
fileMenu.add(newFile);
fileMenu.add(openFile);
fileMenu.insertSeparator(2);
fileMenu.add(close);
fileMenu.insertSeparator(4);
fileMenu.add(save);
fileMenu.add(saveAs);
fileMenu.add(exit); // 创建文本域
textArea = new JTextArea(300, 300);
// 创建滚动条
textScroll = new JScrollPane(textArea);
frame.add(textScroll, BorderLayout.CENTER);
// 创建标签 final JTextField textfield = new JTextField(3);
JPanel northpanel = new JPanel();
JPanel southpanel = new JPanel();
northpanel.setLayout(new GridLayout(7, 7)); northpanel.add(new JLabel("category name:"));
northpanel.add(textfield);
frame.add(northpanel, BorderLayout.NORTH); JButton inserButton = new JButton("添加"); southpanel.add(inserButton);
inserButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
textArea.append("<category name=" + textfield.getText() + " > "
+ "\n" + "<rulegroup id="); }
}); frame.add(southpanel, BorderLayout.SOUTH); // 1、打开文件处理事件
openFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileDialog openFileDialog = new FileDialog(frame, "打开",
FileDialog.LOAD);
openFileDialog.setVisible(true);
textArea.setVisible(true); // 得到文件名
String openedFileName = openFileDialog.getFile();
String openedFileDirectory = openFileDialog.getDirectory();
String openedFilePath = openedFileDirectory + openedFileName;
if (openedFileName.equals("") || openedFileName == null) {
frame.setTitle("无标题 - 记事本");
} else {
frame.setTitle(openedFileName + " - 记事本");
}
try {
writerBuffertoJTextArea(openedFilePath, textArea);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}); // 2、 新建事件处理
newFile.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
textArea.setVisible(true);
frame.setTitle("无标题 - 记事本");
textArea.setText("");
}
}); // 3、 关闭文件事件
close.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
textArea.setVisible(false);
// textArea = null;
}
}); // 4、保存文件事件
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
FileDialog saveFileDialog = new FileDialog(frame, "保存",
FileDialog.SAVE);
saveFileDialog.setVisible(true);
// 得到文件名
String saveFileName = saveFileDialog.getFile();
String saveFileDirectory = saveFileDialog.getDirectory();
String saveFilePath = saveFileDirectory + saveFileName;
JFileChooser chooser=null;
if (saveFileName.equals("") || saveFileName == null) {
frame.setTitle("无标题 - 记事本");
} else {
frame.setTitle(saveFileName + " - 记事本");
} try { textBufferToFile(textArea, saveFilePath);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}); // 5、另存为事件处理
saveAs.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) { FileDialog saveAsFileDialog = new FileDialog(frame, "另存为",
FileDialog.SAVE);
saveAsFileDialog.setVisible(true);
// 得到文件名
String saveAsFileName = saveAsFileDialog.getFile();
String saveAsFileDirectory = saveAsFileDialog.getDirectory();
String svaeAsFilePath = saveAsFileDirectory + saveAsFileName;
if (saveAsFileName.equals("") || saveAsFileName == null) {
frame.setTitle("无标题 - 记事本");
} else {
frame.setTitle(saveAsFileName + " - 记事本");
} try {
textBufferToFile(textArea, svaeAsFilePath);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}); // 6、退出事件处理
exit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}); // 3.2、编辑子菜单项
MenuItem copy = new MenuItem("复制", new MenuShortcut(0x43, false));
MenuItem cut = new MenuItem("剪切", new MenuShortcut(0x58, false));
MenuItem paste = new MenuItem("粘贴", new MenuShortcut(0x56, false));
MenuItem edition = new MenuItem("版本");
editMenu.add(copy);
editMenu.add(cut);
editMenu.add(paste);
editMenu.add(edition);
editMenu.insertSeparator(3); // 3.3 格式字菜单项
MenuItem autoLine = new MenuItem("自动换行");
MenuItem font = new MenuItem("字体");
formatMenu.add(autoLine);
formatMenu.add(font); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setLocation(100, 20);
frame.setVisible(true);
} public static void main(String[] args) { init();
} // 把一个文件里面的内容写入文本框
public static final void writerBuffertoJTextArea(String fileFrom,
JTextComponent text) throws IOException {
InputStream inBuffer = null;
OutputStream outBuffer = null;
InputStream in = null;
OutputStream out = null; try { StringBuilder sb = new StringBuilder();
InputStreamReader input = new InputStreamReader(new FileInputStream(fileFrom), "UTF-8");
BufferedReader br = new BufferedReader(input);
String buf;
while ((buf = br.readLine()) != null) {
sb.append(buf);
sb.append(System.getProperty("line.separator"));
}
br.close(); text.setText(sb.toString()); } finally {
if (inBuffer != null) {
inBuffer.close();
}
if (outBuffer != null) {
outBuffer.close();
}
}
} // 把文本框里面的内容写入一个文件中
// 写文件
public static final void textBufferToFile(JTextComponent text, String fileTo)
throws IOException {
FileOutputStream out = null;
OutputStreamWriter outWriter = null;
BufferedWriter bufferedWriter = null;
String fileFrom = null;
try { StringBuilder sb = new StringBuilder();
OutputStreamWriter output = new OutputStreamWriter(new FileOutputStream(fileFrom), "UTF-8");
BufferedWriter br = new BufferedWriter (output);
String buf;
// while ((buf = br.newLine()) != null) {
// sb.append(buf);
// sb.append(System.getProperty("line.separator"));
// }
// br.close();
} finally {
if (bufferedWriter != null) {
bufferedWriter.close();
}
if (outWriter != null) {
outWriter.close();
}
if (out != null) {
out.close();
}
}
}
}[/code]
static JFrame frame;
static JScrollPane textScroll = null;
static JTextArea textArea = null;
public static final int FRAME_WIDTH = 300;
public static final int FRAME_HEIGHT = 300; public static final void init() {
frame = new JFrame("记事本");
// ImageIcon image = new ImageIcon("src/myPicture.jpg");
// frame.setIconImage(image.getImage());
// 1、菜单条
MenuBar menuBar = new MenuBar();
frame.setMenuBar(menuBar); // 2、创建菜单
Menu fileMenu = new Menu("文件(F)");
Menu editMenu = new Menu("编辑(E)");
Menu formatMenu = new Menu("格式(O)");
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(formatMenu); // 3、文件子菜单项
MenuItem openFile = new MenuItem("打开文件", new MenuShortcut(0x4F, true));
MenuItem newFile = new MenuItem("新建", new MenuShortcut(0x4E, true));
MenuItem save = new MenuItem("保存", new MenuShortcut(0x53, false));
MenuItem saveAs = new MenuItem("另存为", new MenuShortcut(0x53, true));
MenuItem close = new MenuItem("关闭", new MenuShortcut(0x57, false));
MenuItem exit = new MenuItem("退出");
fileMenu.add(newFile);
fileMenu.add(openFile);
fileMenu.insertSeparator(2);
fileMenu.add(close);
fileMenu.insertSeparator(4);
fileMenu.add(save);
fileMenu.add(saveAs);
fileMenu.add(exit); // 创建文本域
textArea = new JTextArea(300, 300);
// 创建滚动条
textScroll = new JScrollPane(textArea);
frame.add(textScroll, BorderLayout.CENTER);
// 创建标签 final JTextField textfield = new JTextField(3);
JPanel northpanel = new JPanel();
JPanel southpanel = new JPanel();
northpanel.setLayout(new GridLayout(7, 7)); northpanel.add(new JLabel("category name:"));
northpanel.add(textfield);
frame.add(northpanel, BorderLayout.NORTH); JButton inserButton = new JButton("添加"); southpanel.add(inserButton);
inserButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
textArea.append("<category name=" + textfield.getText() + " > "
+ "\n" + "<rulegroup id="); }
}); frame.add(southpanel, BorderLayout.SOUTH); // 1、打开文件处理事件
openFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileDialog openFileDialog = new FileDialog(frame, "打开",
FileDialog.LOAD);
openFileDialog.setVisible(true);
textArea.setVisible(true); // 得到文件名
String openedFileName = openFileDialog.getFile();
String openedFileDirectory = openFileDialog.getDirectory();
String openedFilePath = openedFileDirectory + openedFileName;
if (openedFileName.equals("") || openedFileName == null) {
frame.setTitle("无标题 - 记事本");
} else {
frame.setTitle(openedFileName + " - 记事本");
}
try {
writerBuffertoJTextArea(openedFilePath, textArea);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}); // 2、 新建事件处理
newFile.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
textArea.setVisible(true);
frame.setTitle("无标题 - 记事本");
textArea.setText("");
}
}); // 3、 关闭文件事件
close.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
textArea.setVisible(false);
// textArea = null;
}
}); // 4、保存文件事件
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
FileDialog saveFileDialog = new FileDialog(frame, "保存",
FileDialog.SAVE);
saveFileDialog.setVisible(true);
// 得到文件名
String saveFileName = saveFileDialog.getFile();
String saveFileDirectory = saveFileDialog.getDirectory();
String saveFilePath = saveFileDirectory + saveFileName;
JFileChooser chooser=null;
if (saveFileName.equals("") || saveFileName == null) {
frame.setTitle("无标题 - 记事本");
} else {
frame.setTitle(saveFileName + " - 记事本");
} try { textBufferToFile(textArea, saveFilePath);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}); // 5、另存为事件处理
saveAs.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) { FileDialog saveAsFileDialog = new FileDialog(frame, "另存为",
FileDialog.SAVE);
saveAsFileDialog.setVisible(true);
// 得到文件名
String saveAsFileName = saveAsFileDialog.getFile();
String saveAsFileDirectory = saveAsFileDialog.getDirectory();
String svaeAsFilePath = saveAsFileDirectory + saveAsFileName;
if (saveAsFileName.equals("") || saveAsFileName == null) {
frame.setTitle("无标题 - 记事本");
} else {
frame.setTitle(saveAsFileName + " - 记事本");
} try {
textBufferToFile(textArea, svaeAsFilePath);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}); // 6、退出事件处理
exit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}); // 3.2、编辑子菜单项
MenuItem copy = new MenuItem("复制", new MenuShortcut(0x43, false));
MenuItem cut = new MenuItem("剪切", new MenuShortcut(0x58, false));
MenuItem paste = new MenuItem("粘贴", new MenuShortcut(0x56, false));
MenuItem edition = new MenuItem("版本");
editMenu.add(copy);
editMenu.add(cut);
editMenu.add(paste);
editMenu.add(edition);
editMenu.insertSeparator(3); // 3.3 格式字菜单项
MenuItem autoLine = new MenuItem("自动换行");
MenuItem font = new MenuItem("字体");
formatMenu.add(autoLine);
formatMenu.add(font); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setLocation(100, 20);
frame.setVisible(true);
} public static void main(String[] args) { init();
} // 把一个文件里面的内容写入文本框
public static final void writerBuffertoJTextArea(String fileFrom,
JTextComponent text) throws IOException {
InputStream inBuffer = null;
OutputStream outBuffer = null;
InputStream in = null;
OutputStream out = null; try { StringBuilder sb = new StringBuilder();
InputStreamReader input = new InputStreamReader(new FileInputStream(fileFrom), "UTF-8");
BufferedReader br = new BufferedReader(input);
String buf;
while ((buf = br.readLine()) != null) {
sb.append(buf);
sb.append(System.getProperty("line.separator"));
}
br.close(); text.setText(sb.toString()); } finally {
if (inBuffer != null) {
inBuffer.close();
}
if (outBuffer != null) {
outBuffer.close();
}
}
} // 把文本框里面的内容写入一个文件中
// 写文件
public static final void textBufferToFile(JTextComponent text, String fileTo)
throws IOException {
FileOutputStream out = null;
OutputStreamWriter outWriter = null;
BufferedWriter bufferedWriter = null;
String fileFrom = null;
try { StringBuilder sb = new StringBuilder();
OutputStreamWriter output = new OutputStreamWriter(new FileOutputStream(fileFrom), "UTF-8");
BufferedWriter br = new BufferedWriter (output);
String buf;
// while ((buf = br.newLine()) != null) {
// sb.append(buf);
// sb.append(System.getProperty("line.separator"));
// }
// br.close();
} finally {
if (bufferedWriter != null) {
bufferedWriter.close();
}
if (outWriter != null) {
outWriter.close();
}
if (out != null) {
out.close();
}
}
}
}[/code]
解决方案 »
- 在线等,这个程序里面的BufferedReader 的bf.readLine()为什么读不出来。
- 如何反射出传递对象的数组??
- (环境:linux+apache+php5)想把函数中“总计”的值显示为checkbox选中后的文件大小的总和,测试时提示: ftrs = document.getElementByName('file_list[]');(是取checkbox)不合法?
- java 二维数组过滤值 急~~~~~~
- 这种socket数据该怎样读??
- java提取excel数据以word形式打印??(有哪位高手进来解答一下)
- 数据库连接问题,高手指点
- 如何做到类似qq发信息,当按了JButton后,将TextArea的文本发送后,光标仍停留在TextArea,而不会失去焦点
- 为什么jdk1.4的文档中没有ServletContext的api?哪里有介绍的?谢谢
- 在java中如何压缩和解压文件夹?
- 如何去理解Java中插入法
- JAVA I/O处理中throws Exception的问题
// 把文本框里面的内容写入一个文件中
// 写文件
public static final void textBufferToFile(JTextComponent text, String fileTo) throws IOException
{
FileOutputStream out = null;
OutputStreamWriter outWriter = null;
BufferedWriter bufferedWriter = null;
PrintWriter printWriter = null;
String fileFrom = null;
try
{ StringBuilder sb = new StringBuilder();
//OutputStreamWriter output = new OutputStreamWriter(new FileOutputStream(fileFrom), "UTF-8");
OutputStreamWriter output = new OutputStreamWriter(new FileOutputStream(fileTo), "UTF-8");
//BufferedWriter br = new BufferedWriter(output);
printWriter = new PrintWriter(output);
//String buf;
printWriter.println(text.getText());
// while ((buf = br.newLine()) != null) {
// sb.append(buf);
// sb.append(System.getProperty("line.separator"));
// }
// br.close();
}
finally
{
if (printWriter != null)
{
printWriter.close();
}
if (bufferedWriter != null)
{
bufferedWriter.close();
}
if (outWriter != null)
{
outWriter.close();
}
if (out != null)
{
out.close();
}
}
}