欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 用java写记事本心得体会

用java写记事本心得体会

时间:2019-12-01 14:30

用JAVA编写记事本

import java.awt.BorderLayout;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.BorderFactory;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPopupMenu;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.KeyStroke;import javax.swing.ScrollPaneConstants;import javax.swing.SwingConstants;public class JNotePadUI extends JFrame { private JMenuItem menuOpen; private JMenuItem menuSave; private JMenuItem menuSaveAs; private JMenuItem menuClose; private JMenu editMenu; private JMenuItem menuCut; private JMenuItem menuCopy; private JMenuItem menuPaste; private JMenuItem menuAbout; private JTextArea textArea; private JLabel stateBar; private JFileChooser fileChooser; private JPopupMenu popUpMenu; public JNotePadUI() { super(新建文本文件); setUpUIComponent(); setUpEventListener(); setVisible(true); } private void setUpUIComponent() { setSize(640, 480); \\\/\\\/ 菜单栏 JMenuBar menuBar = new JMenuBar(); \\\/\\\/ 设置「文件」菜单 JMenu fileMenu = new JMenu(文件); menuOpen = new JMenuItem(打开); \\\/\\\/ 快捷键设置 menuOpen.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_O, InputEvent.CTRL_MASK)); menuSave = new JMenuItem(保存); menuSave.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, InputEvent.CTRL_MASK)); menuSaveAs = new JMenuItem(另存为); menuClose = new JMenuItem(关闭); menuClose.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_Q, InputEvent.CTRL_MASK)); fileMenu.add(menuOpen); fileMenu.addSeparator(); \\\/\\\/ 分隔线 fileMenu.add(menuSave); fileMenu.add(menuSaveAs); fileMenu.addSeparator(); \\\/\\\/ 分隔线 fileMenu.add(menuClose); \\\/\\\/ 设置「编辑」菜单 JMenu editMenu = new JMenu(编辑); menuCut = new JMenuItem(剪切); menuCut.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK)); menuCopy = new JMenuItem(复制); menuCopy.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)); menuPaste = new JMenuItem(粘贴); menuPaste.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)); editMenu.add(menuCut); editMenu.add(menuCopy); editMenu.add(menuPaste); \\\/\\\/ 设置「关于」菜单 JMenu aboutMenu = new JMenu(关于); menuAbout = new JMenuItem(关于JNotePad); aboutMenu.add(menuAbout); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(aboutMenu);setJMenuBar(menuBar); \\\/\\\/ 文字编辑区域 textArea = new JTextArea(); textArea.setFont(new Font(宋体, Font.PLAIN, 16)); textArea.setLineWrap(true); JScrollPane panel = new JScrollPane(textArea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); Container contentPane = getContentPane(); contentPane.add(panel, BorderLayout.CENTER); \\\/\\\/ 状态栏 stateBar = new JLabel(未修改); stateBar.setHorizontalAlignment(SwingConstants.LEFT); stateBar.setBorder( BorderFactory.createEtchedBorder()); contentPane.add(stateBar, BorderLayout.SOUTH); popUpMenu = editMenu.getPopupMenu(); fileChooser = new JFileChooser(); }private void setUpEventListener() { \\\/\\\/ 按下窗口关闭钮事件处理 addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { closeFile(); } } ); \\\/\\\/ 菜单 - 打开 menuOpen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { openFile(); } } ); \\\/\\\/ 菜单 - 保存 menuSave.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { saveFile(); } } ); \\\/\\\/ 菜单 - 另存为 menuSaveAs.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { saveFileAs(); } } );\\\/\\\/ 菜单 - 关闭文件 menuClose.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { closeFile(); } } ); \\\/\\\/ 菜单 - 剪切 menuCut.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { cut(); } } ); \\\/\\\/ 菜单 - 复制 menuCopy.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { copy(); } } ); \\\/\\\/ 菜单 - 粘贴 menuPaste.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { paste(); } } ); \\\/\\\/ 菜单 - 关于 menuAbout.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { \\\/\\\/ 显示对话框 JOptionPane.showOptionDialog(null, 程序名称:\\\ JNotePad \\\ + 程序设计:\\\ \\\ + 简介:\\\ 一个简单的文字编辑器\\\ + 可作为验收Java的实现对象\\\ + 欢迎网友下载研究交流\\\ \\\ + \\\/, 关于JNotePad, JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); } } ); \\\/\\\/ 编辑区键盘事件 textArea.addKeyListener( new KeyAdapter() { public void keyTyped(KeyEvent e) { processTextArea(); } } ); \\\/\\\/ 编辑区鼠标事件 textArea.addMouseListener( new MouseAdapter() { public void mouseReleased(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON3) popUpMenu.show(editMenu, e.getX(), e.getY()); } public void mouseClicked(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON1) popUpMenu.setVisible(false); } } ); } private void openFile() { if(isCurrentFileSaved()) { \\\/\\\/ 文件是否为保存状态 open(); \\\/\\\/ 打开 } else { \\\/\\\/ 显示对话框 int option = JOptionPane.showConfirmDialog( null, 文件已修改,是否保存

, 保存文件

, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null); switch(option) { \\\/\\\/ 确认文件保存 case JOptionPane.YES_OPTION: saveFile(); \\\/\\\/ 保存文件 break; \\\/\\\/ 放弃文件保存 case JOptionPane.NO_OPTION: open(); break; } } } private boolean isCurrentFileSaved() { if(stateBar.getText().equals(未修改)) { return false; } else { return true; } } private void open() { \\\/\\\/ fileChooser 是 JFileChooser 的实例 \\\/\\\/ 显示文件选取的对话框 int option = fileChooser.showDialog(null, null); \\\/\\\/ 使用者按下确认键 if(option == JFileChooser.APPROVE_OPTION) { try { \\\/\\\/ 开启选取的文件 BufferedReader buf = new BufferedReader( new FileReader( fileChooser.getSelectedFile())); \\\/\\\/ 设定文件标题 setTitle(fileChooser.getSelectedFile().toString()); \\\/\\\/ 清除前一次文件 textArea.setText(); \\\/\\\/ 设定状态栏 stateBar.setText(未修改); \\\/\\\/ 取得系统相依的换行字符 String lineSeparator = System.getProperty(line.separator); \\\/\\\/ 读取文件并附加至文字编辑区 String text; while((text = buf.readLine()) != null) { textArea.append(text); textArea.append(lineSeparator); } buf.close(); } catch(IOException e) { JOptionPane.showMessageDialog(null, e.toString(), 开启文件失败, JOptionPane.ERROR_MESSAGE); } } } private void saveFile() { \\\/\\\/ 从标题栏取得文件名称 File file = new File(getTitle()); \\\/\\\/ 若指定的文件不存在 if(!file.exists()) { \\\/\\\/ 执行另存为 saveFileAs(); } else { try { \\\/\\\/ 开启指定的文件 BufferedWriter buf = new BufferedWriter( new FileWriter(file)); \\\/\\\/ 将文字编辑区的文字写入文件 buf.write(textArea.getText()); buf.close(); \\\/\\\/ 设定状态栏为未修改 stateBar.setText(未修改); } catch(IOException e) { JOptionPane.showMessageDialog(null, e.toString(), 写入文件失败, JOptionPane.ERROR_MESSAGE); } } } private void saveFileAs() { \\\/\\\/ 显示文件对话框 int option = fileChooser.showSaveDialog(null); \\\/\\\/ 如果确认选取文件 if(option == JFileChooser.APPROVE_OPTION) { \\\/\\\/ 取得选择的文件 File file = fileChooser.getSelectedFile(); \\\/\\\/ 在标题栏上设定文件名称 setTitle(file.toString()); try { \\\/\\\/ 建立文件 file.createNewFile(); \\\/\\\/ 进行文件保存 saveFile(); } catch(IOException e) { JOptionPane.showMessageDialog(null, e.toString(), 无法建立新文件, JOptionPane.ERROR_MESSAGE); } } } private void closeFile() { \\\/\\\/ 是否已保存文件 if(isCurrentFileSaved()) { \\\/\\\/ 释放窗口资源,而后关闭程序 dispose(); } else { int option = JOptionPane.showConfirmDialog( null, 文件已修改,是否保存

, 保存文件

, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null); switch(option) { case JOptionPane.YES_OPTION: saveFile(); break; case JOptionPane.NO_OPTION: dispose(); } } } private void cut() { textArea.cut(); stateBar.setText(已修改); popUpMenu.setVisible(false); } private void copy() { textArea.copy(); popUpMenu.setVisible(false); } private void paste() { textArea.paste(); stateBar.setText(已修改); popUpMenu.setVisible(false); } private void processTextArea() { stateBar.setText(已修改); }public static void main(String[] args) { new JNotePadUI(); } }

如何用java写一个日记记事本

什么例子都不用看,如果你电脑上装了JDK,在jdk1.5.0_05\\\\demo\\\\jfc\\\\Notepad目录下有很多例子,你可以看看。

SUN开发人员写的,很牛X的。

java编写简单记事本

方法\\\/步骤下载JDK,并安装成功,CMD测试Java环境安装成功。

出现如下提示则Java环境安装成功打开mycelipse进入主界面,点击左上角file--new---java project,新建一个Java项目,项目名字任意取,这里我取名为note--然后点击完成,创建Java项目然后右键项目下的src--new---package,新建一个包,包名我定为notetest,然后点击完成然后右键我们建立好的包notetest--new--class,包名为Note,点击完成首先我们想导入工程所需要的包,以便编写程序时进行调用package notepad;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;首先定义好编写程序时变量,我们设为成员变量方便以后调用public class Notepad{\\\/\\\/屏幕分辨率 int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height;\\\/\\\/窗体private Frame frm ;\\\/\\\/显示内容多行文本private TextArea notetext;\\\/\\\/记事本菜单private MenuBar mb;\\\/\\\/菜单private Menu m ;\\\/\\\/菜单项private MenuItem open,save;为程序创建组件--Frame--菜单栏目--文本框TextAreapublic Notepad(){init();}private void init(){frm = new Frame(模拟记事本);\\\/\\\/设置菜单mb = new MenuBar();m = new Menu(文件);\\\/\\\/显示文件的地方notetext = new TextArea();notetext.setBounds(30, 50, 750, 500);frm.add(notetext);myEvent();为控件和按钮添加监听事件private void myEvent() {\\\/\\\/打开菜单的事件处理 open.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {\\\/\\\/判断路径和文件名是否为空 如果为空结束程序if(dir == null || name == null)\\\/\\\/如果不为空讲路径名和文件名封装到File对象里file = new File(dir,name);\\\/\\\/使用字符缓冲读取文件BufferedReader bfr = null;try {bfr = new BufferedReader(new FileReader(file));});save.addActionListener(new ActionListener(){\\\/\\\/获取路径和文件名String dir =fd.getDirectory();String name = fd.getFile();\\\/\\\/如果不为空讲路径名和文件名封装到File对象里file = new File(dir,name);}BufferedWriter bfr= null;}});}}然后创建主方法,开始测试程序,新建一个NoteDemo类package notepad;public class NoteDemo {public static void main(String[] args) {new Notepad();}}

java编写的记事本的保存和另存为功能

你要的关键程序代码:。

(源文件超过10000字,无法粘全在这,要的话,加我)if(e.getActionCommand()==保存||e.getActionCommand()==保存为) { JFileChooser chooser=new JFileChooser(); \\\/\\\/创建文件选择对话框 int result=chooser.showSaveDialog(frame); if(result==JFileChooser.APPROVE_OPTION) { try { FileWriter fout = new FileWriter(chooser.getSelectedFile()); \\\/\\\/向磁盘中写文件 fout.write(jtextpane.getText()+\\\\r\\\ ); fout.close(); } catch (IOException ioex) { } } }执行效果:

如何用JAVA编写简单的记事本程序

import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.io.*;import java.awt.datatransfer.*;public class NewEdit{ public static void main(String args[]) { MyFrame EditFrame=new MyFrame(); EditFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); EditFrame.setVisible(true); }}class MyFrame extends JFrame{ public MyFrame() { Dimension screenSize=toolKit.getScreenSize(); int screenHeight=screenSize.height; int screenWidth=screenSize.width; setSize(screenWidth\\\/2,screenHeight\\\/2); setLocation(screenWidth\\\/4,screenHeight\\\/4); Image img=toolKit.getImage(icon.gif); setIconImage(img); setTitle(MyEdit); JMenuBar menuBar=new JMenuBar(); setJMenuBar(menuBar); JMenu fileMenu=new JMenu(文件); JMenu editMenu=new JMenu(编辑); JMenu helpMenu=new JMenu(帮助); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(helpMenu); JMenuItem newItem=new JMenuItem(新建); newItem.addActionListener(new NewListener()); JMenuItem openItem=new JMenuItem(打开); openItem.addActionListener(new OpenListener()); JMenuItem saveItem=new JMenuItem(保存); saveItem.addActionListener(new SaveListener()); JMenuItem escItem=new JMenuItem(退出); escItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent myE) { System.exit(0); } }); fileMenu.add(newItem); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.add(escItem); JMenuItem allItem=new JMenuItem(全选); \\\/\\\/JMenuItem copyItem=new JMenuItem(复制); \\\/\\\/CopyAction copyAction=new CopyAction(); \\\/\\\/copyItem.addActionListener(copyAction); JMenuItem cutItem=new JMenuItem(剪切); \\\/\\\/JMenuItem pasteItem=new JMenuItem(粘贴); \\\/\\\/Action pasteAction=new PasteAction(); \\\/\\\/pasteItem.addActionListener(pasteAction); editMenu.add(allItem); allItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent myE) { textArea.selectAll(); } }); CopyAction copyAction=new CopyAction(剪切); editMenu.add(copyAction); CutAction cutAction=new CutAction(复制); editMenu.add(cutAction); Action pasteAction=new PasteAction(粘贴); editMenu.add(pasteAction); popup=new JPopupMenu(); popup.add(copyAction); popup.add(pasteAction); popup.add(cutAction); textArea = new JTextArea(); textArea.add(popup); textArea.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON3) { popup.show(textArea, e.getX(), e.getY()); } } public void mouseReleased(MouseEvent e) {} });\\\/\\\/可尝试用MouseAdapter,代码可能更简单 JScrollPane scroller = new JScrollPane(textArea); add(scroller); \\\/\\\/OR--this.getContentPane().add(scroller) \\\/\\\/scroller.setComponentPopupMenu(popup); \\\/\\\/textArea.setInheritsPopupMenu(true); \\\/\\\/scroller.addMouseListener(new MouseAdapter(){}); } public void writeFile(String fileName) { try { File file = new File(fileName); FileWriter write = new FileWriter(file); write.write(textArea.getText()); write.close(); } catch(Exception e){ System.out.println(Error closing file!); } } public void openFile(String fileName) { try { File file = new File(fileName); FileReader readIn = new FileReader(file); int size = (int)file.length(); int charsRead = 0; char[] content = new char[size]; while(readIn.ready()) charsRead += readIn.read(content,charsRead,size-charsRead); readIn.close(); textArea.setText(new String(content,0,charsRead)); } catch(IOException e) { System.out.println(Error opening file!); } } private class NewListener implements ActionListener { public void actionPerformed(ActionEvent myE) { textArea.setText(); } } private class OpenListener implements ActionListener { public void actionPerformed(ActionEvent myE) { openFileDialog.setVisible(true); fileName = openFileDialog.getDirectory()+openFileDialog.getFile(); if(fileName != null) { openFile(fileName); } } } private class SaveListener implements ActionListener { public void actionPerformed(ActionEvent myE) { saveFileDialog.setVisible(true); fileName = saveFileDialog.getDirectory()+saveFileDialog.getFile(); if(fileName !=null) { writeFile(fileName); } } } private class CutAction extends AbstractAction { public CutAction(String name) { super(name); } public void actionPerformed(ActionEvent event) { String text = textArea.getSelectedText(); StringSelection selection = new StringSelection(text); clipboard.setContents(selection,null); textArea.replaceRange(,textArea.getSelectionStart(), textArea.getSelectionEnd()); } } private class CopyAction extends AbstractAction { public CopyAction(String name) { super(name); } public void actionPerformed(ActionEvent event) { String text = textArea.getSelectedText(); StringSelection selection= new StringSelection(text); clipboard.setContents(selection,null); } } private class PasteAction extends AbstractAction { public PasteAction(String name) { super(name); } public void actionPerformed(ActionEvent event) { Transferable contents = clipboard.getContents(this); if(contents==null) return; String text; text=; try { text = (String)contents.getTransferData(DataFlavor.stringFlavor); } catch(Exception ex){} textArea.replaceRange(text, textArea.getSelectionStart(),textArea.getSelectionEnd()); } } private JTextArea textArea; private JPopupMenu popup; private String fileName=; private FileDialog openFileDialog=new FileDialog(this,OpenFile,FileDialog.LOAD); private FileDialog saveFileDialog=new FileDialog(this,SaveFile,FileDialog.SAVE); Toolkit toolKit = Toolkit.getDefaultToolkit(); private Clipboard clipboard = toolKit.getSystemClipboard();}

java 编写 记事本 问题

It's so easy。

看看你的redo有没有添加事件监听。

java 编写的 记事本

import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JNotePadUI extends JFrame { private JMenuItem menuOpen; private JMenuItem menuSave; private JMenuItem menuSaveAs; private JMenuItem menuClose; private JMenu editMenu; private JMenuItem menuCut; private JMenuItem menuCopy; private JMenuItem menuPaste; private JMenuItem menuAbout; private JTextArea textArea; private JLabel stateBar; private JFileChooser fileChooser; private JPopupMenu popUpMenu; public JNotePadUI() { super(新建文本文件); setUpUIComponent(); setUpEventListener(); setVisible(true); } private void setUpUIComponent() { setSize(640, 480); \\\/\\\/ 菜单 JMenuBar menuBar = new JMenuBar(); \\\/\\\/ 设置「文件」菜单 JMenu fileMenu = new JMenu(文件); menuOpen = new JMenuItem(打开); \\\/\\\/ 快捷键设置 menuOpen.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_O, InputEvent.CTRL_MASK)); menuSave = new JMenuItem(保存); menuSave.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, InputEvent.CTRL_MASK)); menuSaveAs = new JMenuItem(另存为); menuClose = new JMenuItem(关闭); menuClose.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_Q, InputEvent.CTRL_MASK)); fileMenu.add(menuOpen); fileMenu.addSeparator(); \\\/\\\/ 分隔线 fileMenu.add(menuSave); fileMenu.add(menuSaveAs); fileMenu.addSeparator(); \\\/\\\/ 分隔线 fileMenu.add(menuClose); \\\/\\\/ 设置「编辑」菜单 JMenu editMenu = new JMenu(编辑); menuCut = new JMenuItem(剪切); menuCut.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK)); menuCopy = new JMenuItem(复制); menuCopy.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)); menuPaste = new JMenuItem(粘贴); menuPaste.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)); editMenu.add(menuCut); editMenu.add(menuCopy); editMenu.add(menuPaste); \\\/\\\/ 设置「关于」菜单 JMenu aboutMenu = new JMenu(关于); menuAbout = new JMenuItem(关于JNotePad); aboutMenu.add(menuAbout); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(aboutMenu); setJMenuBar(menuBar); \\\/\\\/ 文字编辑区域 textArea = new JTextArea(); textArea.setFont(new Font(宋体, Font.PLAIN, 16)); textArea.setLineWrap(true); JScrollPane panel = new JScrollPane(textArea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); Container contentPane = getContentPane(); contentPane.add(panel, BorderLayout.CENTER); \\\/\\\/ 状态栏 stateBar = new JLabel(未修改); stateBar.setHorizontalAlignment(SwingConstants.LEFT); stateBar.setBorder( BorderFactory.createEtchedBorder()); contentPane.add(stateBar, BorderLayout.SOUTH); popUpMenu = editMenu.getPopupMenu(); fileChooser = new JFileChooser(); } private void setUpEventListener() { \\\/\\\/ 按下窗口关闭钮事件处理 addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { closeFile(); } } ); \\\/\\\/ 菜单 - 打开 menuOpen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { openFile(); } } ); \\\/\\\/ 菜单 - 保存 menuSave.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { saveFile(); } } ); \\\/\\\/ 菜单 - 另存为 menuSaveAs.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { saveFileAs(); } } ); \\\/\\\/ 菜单 - 关闭文件 menuClose.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { closeFile(); } } ); \\\/\\\/ 菜单 - 剪切 menuCut.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { cut(); } } ); \\\/\\\/ 菜单 - 复制 menuCopy.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { copy(); } } ); \\\/\\\/ 菜单 - 粘贴 menuPaste.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { paste(); } } ); \\\/\\\/ 菜单 - 关于 menuAbout.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { \\\/\\\/ 显示对话框 JOptionPane.showOptionDialog(null, 程序名称:\\\ JNotePad \\\ + 程序设计:\\\ ???\\\ + 简介:\\\ 一个简单的文字编辑器\\\ , 关于JNotePad, JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); } } ); \\\/\\\/ 编辑区键盘事件 textArea.addKeyListener( new KeyAdapter() { public void keyTyped(KeyEvent e) { processTextArea(); } } ); \\\/\\\/ 编辑区鼠标事件 textArea.addMouseListener( new MouseAdapter() { public void mouseReleased(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON3) popUpMenu.show(editMenu, e.getX(), e.getY()); } public void mouseClicked(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON1) popUpMenu.setVisible(false); } } ); } private void openFile() { if(isCurrentFileSaved()) { \\\/\\\/ 文件是否为保存状态 open(); \\\/\\\/ 打开 } else { \\\/\\\/ 显示对话框 int option = JOptionPane.showConfirmDialog( null, 文件已修改,是否保存

, 保存文件

, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null); switch(option) { \\\/\\\/ 确认文件保存 case JOptionPane.YES_OPTION: saveFile(); \\\/\\\/ 保存文件 break; \\\/\\\/ 放弃文件保存 case JOptionPane.NO_OPTION: open(); break; } } } private boolean isCurrentFileSaved() { if(stateBar.getText().equals(未修改)) { return true; } else { return false; } } private void open() { \\\/\\\/ fileChooser 是 JFileChooser 的实例 \\\/\\\/ 显示文件选取的对话框 int option = fileChooser.showDialog(null, null); \\\/\\\/ 使用者按下确认键 if(option == JFileChooser.APPROVE_OPTION) { \\\/* TODO: 添加读取文件的代码 *\\\/ } } private void saveFile() { \\\/* TODO: 添加保存文件的代码 *\\\/ } private void saveFileAs() { \\\/* TODO: 添加另存为的代码 *\\\/ } private void closeFile() { \\\/\\\/ 是否已保存文件 if(isCurrentFileSaved()) { \\\/\\\/ 释放窗口资源,而后关闭程序 dispose(); } else { int option = JOptionPane.showConfirmDialog( null, 文件已修改,是否保存

, 保存文件

, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null); switch(option) { case JOptionPane.YES_OPTION: saveFile(); break; case JOptionPane.NO_OPTION: dispose(); } } } private void cut() { textArea.cut(); stateBar.setText(已修改); popUpMenu.setVisible(false); } private void copy() { textArea.copy(); popUpMenu.setVisible(false); } private void paste() { textArea.paste(); stateBar.setText(已修改); popUpMenu.setVisible(false); } private void processTextArea() { stateBar.setText(已修改); } public static void main(String[] args) { new JNotePadUI(); } }

求个用JAVA编写的记事本程序

import .event.*; import .*; import javax.swing.*; import .*; public class TextEditor { char buffer[]=new char[1024]; String sou=; String des=; long souTime,desTime; JFrame mainWindow=new JFrame(文本编辑器); JMenuBar menuBar=new JMenuBar(); JMenu fileMenu=new JMenu(文件); JMenu helpMenu=new JMenu(帮助); JMenuItem openItem=new JMenuItem(打开); JMenuItem saveItem=new JMenuItem(保存); JMenuItem resaveItem=new JMenuItem(另存为); JMenuItem exitItem=new JMenuItem(退出); JMenuItem helpItem=new JMenuItem(关于文本编辑器); JTextArea textArea=new JTextArea(15,30); JScrollPane js = new JScrollPane(); JLabel labelInfo=new JLabel(状态栏); Listener listen=new Listener(); JFileChooser openDialog=new JFileChooser(F:\\\\\\\\); \\\/\\\/窗体初始化方法 public void init(){ \\\/\\\/把菜单项加入到菜单栏中 menuBar.add(fileMenu); menuBar.add(helpMenu); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.add(resaveItem); fileMenu.addSeparator(); fileMenu.add(exitItem); helpMenu.add(helpItem); \\\/\\\/给菜单组件添加监听器 openItem.addActionListener(listen); saveItem.addActionListener(listen); resaveItem.addActionListener(listen); exitItem.addActionListener(listen); helpItem.addActionListener(listen); js.getViewport().setView(textArea); \\\/\\\/添加窗体中的组件 mainWindow.setJMenuBar(menuBar); mainWindow.getContentPane().add(js,BorderLayout.CENTER); mainWindow.getContentPane().add(labelInfo,BorderLayout.SOUTH); \\\/\\\/mainWindow.setBounds(0, 0, 300, 300); mainWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); \\\/\\\/窗口监听事件,当关闭窗口时触发 mainWindow.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ \\\/\\\/System.exit(0); if(sou.equals()){ int len=JOptionPane.showConfirmDialog(mainWindow,文件未保存,是否保存); if(len==JOptionPane.NO_OPTION) System.exit(0); else{ if(len==JOptionPane.YES_OPTION){ len=openDialog.showSaveDialog(mainWindow); if(len==JFileChooser.APPROVE_OPTION){ File exitFile=openDialog.getSelectedFile(); des=textArea.getText(); save(exitFile); sou=des; if(exitFile.exists()) labelInfo.setText(exitFile.getPath()+保存成功); System.exit(0); } else labelInfo.setText(返回原程序); } else labelInfo.setText(返回原程序); } } else{ des=textArea.getText(); labelInfo.setText(退出程序); if(sou.equals(des)==false){ int len=JOptionPane.showConfirmDialog(mainWindow,文件未保存,是否保存); if(len==JOptionPane.NO_OPTION) System.exit(0); else{ if(len==JOptionPane.YES_OPTION){ len=len=openDialog.showSaveDialog(mainWindow); File exitFile=openDialog.getSelectedFile(); des=textArea.getText(); save(exitFile); if(exitFile.exists()) labelInfo.setText(exitFile.getPath()+保存成功); } else labelInfo.setText(返回原程序); } } else System.exit(0); } } }); \\\/\\\/按适合的大小显示窗体于屏幕中央 mainWindow.pack(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); mainWindow.setSize(300,200); Dimension frameSize = mainWindow.getPreferredSize(); if(frameSize.height > screenSize.height){ frameSize.height = screenSize.height; } if(frameSize.width > screenSize.width){ frameSize.width = screenSize.width; } mainWindow.setLocation(( (screenSize.width - frameSize.width) \\\/ 2), ( (screenSize.height - frameSize.height) \\\/ 2)); mainWindow.setSize(frameSize); mainWindow.setVisible(true); } \\\/\\\/菜单组件监听器类 class Listener implements ActionListener{ public void actionPerformed(ActionEvent e){ String command=e.getActionCommand(); \\\/\\\/“打开”菜单项处理动作 if(command.equals(打开)){ int len=openDialog.showOpenDialog(mainWindow); File openFile=openDialog.getSelectedFile(); if(len==JFileChooser.APPROVE_OPTION){ open(openFile); souTime=openFile.lastModified(); } } \\\/\\\/“保存”菜单项处理动作 if(command.equals(保存)){ if(sou.equals()){ int len=openDialog.showSaveDialog(mainWindow); if(len==JFileChooser.APPROVE_OPTION){ File resaveFile=openDialog.getSelectedFile(); des=textArea.getText(); save(resaveFile); sou=des; if(resaveFile.exists()) labelInfo.setText(resaveFile.getPath()+保存成功); } } else{ File saveFile=openDialog.getSelectedFile(); des=textArea.getText(); if(sou.equals(des)==false){ save(saveFile); sou=des;}} } \\\/\\\/“另存为”菜单项处理动作 if(command.equals(另存为)){ int len=openDialog.showSaveDialog(mainWindow); if(len==JFileChooser.APPROVE_OPTION){ File resaveFile=openDialog.getSelectedFile(); des=textArea.getText(); save(resaveFile); if(resaveFile.exists()) labelInfo.setText(resaveFile.getPath()+保存成功); } else labelInfo.setText(返回原程序); } \\\/\\\/“退出”菜单项处理动作 if(command.equals(退出)){ if(sou.equals()){ int len=JOptionPane.showConfirmDialog(mainWindow,文件未保存,是否保存); if(len==JOptionPane.NO_OPTION) System.exit(0); else{ if(len==JOptionPane.YES_OPTION){ len=openDialog.showSaveDialog(mainWindow); if(len==JFileChooser.APPROVE_OPTION){ File exitFile=openDialog.getSelectedFile(); des=textArea.getText(); save(exitFile); sou=des; if(exitFile.exists()) { labelInfo.setText(exitFile.getPath()+保存成功); } System.exit(0); } else labelInfo.setText(返回原程序); } else labelInfo.setText(返回原程序); } } else{ des=textArea.getText(); labelInfo.setText(退出程序); if(sou.equals(des)==false){ int len=JOptionPane.showConfirmDialog(mainWindow,文件未保存,是否保存); if(len==JOptionPane.NO_OPTION) System.exit(0); else{ if(len==JOptionPane.YES_OPTION){ len=len=openDialog.showSaveDialog(mainWindow); File exitFile=openDialog.getSelectedFile(); des=textArea.getText(); save(exitFile); if(exitFile.exists()) labelInfo.setText(exitFile.getPath()+保存成功); } else labelInfo.setText(返回原程序); } } else System.exit(0); } } \\\/\\\/“关于文本编辑器”菜单项处理动作 if(command.equals(关于文本编辑器)){ JOptionPane.showMessageDialog(null,文本编辑器Version 0.7); labelInfo.setText(返回原程序); } } } \\\/\\\/打开文件方法 public void open(File file){ \\\/\\\/String filePath=file.getParent()+\\\\\\\\+file.getName(); try{ FileReader in=new FileReader(file); int len=in.read(buffer); textArea.setText(new String(buffer,0,len)); sou=new String(buffer,0,len); labelInfo.setText(打开+file.getPath()); in.close(); } catch(Exception e){} } \\\/\\\/保存文件方法 public void save(File file){ try{ FileWriter out=new FileWriter(file); buffer=des.toCharArray(); out.write(buffer); out.close(); desTime=file.lastModified(); if(desTime!=souTime&&file.exists()) { labelInfo.setText(file.getPath()+保存成功); souTime=desTime;} } catch(Exception e){} } public static void main(String[] args) { new TextEditor().init(); } }

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片