Java编写的简单记事本
我用java编写的记事本代码,分享给大家
backcolor.add(white); backcolor.addSeparator();
backcolor.add(pink); backcolor.addSeparator();
backcolor.add(morecolor);
JMenuItem red=new JMenuItem("红色");//","橙","黄","","青","蓝","紫","黑","灰","白","粉红"
JMenuItem green=new JMenuItem("绿色");
JMenuItem yellow=new JMenuItem("黄色");
clear.setFont(a); clear.setForeground(Color.MAGENTA);
paste.setFont(a); paste.setForeground(Color.MAGENTA);
cut.setFont(a); cut.setForeground(Color.MAGENTA);
JMenuItem black=new JMenuItem("黑色");
JMenuItem gray=new JMenuItem("灰色");
JMenuItem white=new JMenuItem("白色");
JMenuItem pink=new JMenuItem("粉红");
基于Swing的Mini记事本源程序
Mini 记事本源程序 目录 1.程序入口 Notepad.java ........................................................................................................ 1 2.工具栏按钮类 ToolBarButton.java ........................................................................................ 1 3.字体对话框类 JFontChooser.java ......................................................................................... 2 4.记事本核心类 FormMain.java ............................................................................................... 6 5.在项目中创建属性文件 notepad.properties ................................................................. 21 说明:本程序是学习 Swing、文件流的练习程序,部分代码没有 没有实现,发现后自己补充;如果测试出 bug,自行改正。
1.程序入口 Notepad.java package notepad; public class NotePad { public static void main(String[] args) { FormMain win = new FormMain("Mini记事本"); win.setVisible(true); } } 2.工具栏按钮类 ToolBarButton.java package notepad; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; /** * @author 孙丰伟 E‐mail: sunfengweimail@ * @version 创建时间:May 3, 2008 12:49:50 PM * @see */ public class ToolBarButton extends JButton { public ToolBarButton(Icon icon) { super(icon); setVerticalTextPosition(BOTTOM); setHorizontalTextPosition(CENTER); } public ToolBarButton(String imageFile) { this(new ImageIcon(imageFile)); // this 调用构造方法 } } // end class ToolBarButton 3.字体对话框类 JFontChooser.java package notepad; import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; import java.awt.Font; import java.awt.GraphicsEnvironment; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.*; /****************************************** * 类 名: JFontChooser * 作 者:孙丰伟 E‐mail: sunfengweimail@ * 时 间:2008‐4‐24 * 描 述:实现简单的字体设置 ******************************************/ public class JFontChooser extends JDialog implements ActionListener { private Font font; private Container contentPane; private JButton btnOK,btnCancel; private JComboBox comboFont,comboSize,comboStyle; private JTextField txtFontName,txtFontSize,txtFontStyle; private Box baseBoxV,fontBox,boxV1,boxV2,boxV3; private JPanel btnPanel,labPanel; private JLabel labFont,labStyle,labSize,labDemo; public JFontChooser(JFrame frame,String title,boolean flag,Font font) { super(frame,title,flag); this.font=font; this.initForm(); } private void initForm() { this.contentPane = this.getContentPane(); // // 取系统中支持字体 // GraphicsEnvironment gl = GraphicsEnvironment.getLocalGraphicsEnvironment(); String[] fontName = gl.getAvailableFontFamilyNames(); comboFont=new JComboBox(fontName); labFont=new JLabel("字体:"); labStyle=new JLabel("样式:"); labSize=new JLabel("大小:"); txtFontName=new JTextField(font.getFamily()); txtFontSize=new JTextField(String.valueOf(font.getSize())); txtFontStyle=new JTextField(String.valueOf(font.getStyle())); labDemo=new JLabel("Hello,这是字体样例!"); labDemo.setFont(font); labDemo.setHorizontalAlignment(JLabel.LEFT); String[] fontStyle = { "常规", "粗体", "斜体"}; comboStyle=new JComboBox(fontStyle); //大小 comboSize=new JComboBox(); for(int size=8;size<=72;size++) { comboSize.addItem(size); } // // 为组合框设置事件 // HandleItemListener itemListener=new HandleItemListener(); comboFont.addItemListener(itemListener); comboStyle.addItemListener(itemListener); comboSize.addItemListener(itemListener); boxV1=Box.createVerticalBox(); boxV1.add(labFont); boxV1.add(txtFontName); boxV1.add(comboFont); fontBox=Box.createHorizontalBox(); fontBox.add(boxV1); boxV2=Box.createVerticalBox(); boxV2.add(labStyle); boxV2.add(txtFontStyle); boxV2.add(comboStyle); boxV3=Box.createVerticalBox(); boxV3.add(labSize); boxV3.add(txtFontSize); boxV3.add(comboSize); fontBox.add(boxV2); fontBox.add(boxV3); baseBoxV=Box.createVerticalBox(); baseBoxV.add(fontBox); baseBoxV.add(Box.createVerticalStrut(20)); labPanel=new JPanel(); FlowLayout flow=new FlowLayout(); flow.setAlignment(FlowLayout.LEFT); labPanel.setLayout(flow); labPanel.add(labDemo); baseBoxV.add(labPanel); this.contentPane.add(baseBoxV); btnPanel=new JPanel(); btnOK=new JButton("确定"); btnCancel=new JButton("取消"); btnOK.addActionListener(this); btnCancel.addActionListener(this); btnPanel.add(btnOK); btnPanel.add(btnCancel); this.contentPane.add(btnPanel, BorderLayout.SOUTH); this.setLocationRelativeTo(null); this.setResizable(false); this.setSize(450, 200); this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); this.setVisible(true); } class HandleItemListener implements ItemListener { @Override public void itemStateChanged(ItemEvent e) { // TODO Auto‐generated method stub if(e.getSource()==comboFont) { txtFontName.setText(comboFont.getSelectedItem().toString()); } if(e.getSource()==comboStyle) { txtFontStyle.setText(comboStyle.getSelectedItem().toString()); } if(e.getSource()==comboSize) { txtFontSize.setText(comboSize.getSelectedItem().toString()); } //setTitle(String.valueOf(comboStyle.getSelectedIndex())); font=font=new Font(txtFontName.getText(),comboStyle.getSelectedIndex(),Integer.parseInt(txtFontSize.getT ext())); labDemo.setFont(font); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto‐generated method stub System.out.println(comboFont.getSelectedItem().toString()); System.out.println(Integer.parseInt(comboSize.getSelectedItem().toString())); if(e.getSource()==btnOK) { //font=new Font(comboFont.getSelectedItem().toString(),comboSize.getSelectedIndex(),Integer.parseInt( comboSize.getSelectedItem().toString())); this.dispose(); } else { font=null; this.dispose(); } } public static void main(String[] args) { Font font=new Font("新宋体",Font.ITALIC,20); JFontChooser fontChooser=new JFontChooser(null,"设置字体",true,font); } public Font getNoteFont() { return font; } } 4.记事本核心类 FormMain.java /****************************************** * 文件名: FormMain.java * 作 者:孙丰伟 * 时 间:2008‐4‐24 * 描 述:保存 FormMain 类,是记事本程序的核心类 * 测 试:本程序使用 Elipse 编写,JDK1.6 测试运行 ******************************************/ package notepad; import java.awt.*; import javax.swing.*; import javax.swing.border.Border; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.event.UndoableEditEvent; import javax.swing.event.UndoableEditListener; import javax.swing.undo.CannotRedoException; import javax.swing.undo.CannotUndoException; import javax.swing.undo.UndoManager; import javax.swing.filechooser.*; import java.awt.event.*; import java.io.*; import java.util.Properties; /** * * 枚举类型: 用于标识视图菜单 * */ enum VIEW{ //视图菜单 STATUS, //状态栏 FOREGROUND, //前景颜色 BACKGROUND //背景颜色 } /** * * 枚举类型: 用于标识文件菜单 * */ enum FILE{ //用于文件菜单 NEW, //新建文件 OPEN, //打开文件 SAVE, //保存文件 SAVEAS, //另存为 EXIT //退出 } /** * * 枚举类型: 用于标识编辑菜单 * */ enum EDIT //用于编辑菜单 { COPY, //复制 CUT, //剪切 PASTE, //粘贴 DELETE, //删除 UNDO, //撤销 REDO //恢复 } /****************************************** * 类 名: FormMain * 作 者:孙丰伟 * 时 间:2008‐4‐24 * 描 述:记事本程序 * 内部类: * 1. TxtNoteActionListener:编辑菜单监听 * 2. FileActionListener:文件菜单监听 * 3. ViewActionListener:视图菜单监听 * 方 法: * 1. initialize() 初始窗体 * 2. saveFile() 保存文件 * 3. openFile() 打开文件 ******************************************/ class FormMain extends JFrame { private Container contentPane; // 内容面板 private JMenuBar mnuBar; // 菜单容器 private JMenu mnuFile, mnuEdit,mnuFormat, mnuView; // 主菜单 private JMenuItem mnuFileOpen, mnuFileSaveAs, mnuFileSave, mnuFileNew, mnuFileExit; //文件菜单项 private JMenuItem mnuEditCut, mnuEditPaste, mnuEditCopy, mnuEditDelete,mnuEditUndo, mnuEditRedo; //编辑菜单项 private JMenuItem mnuPCut, mnuPPaste, mnuPCopy, mnuPDelete; //编辑菜单项 ____右键弹出菜单 private JCheckBoxMenuItem mnuViewStatus; // 带复选的菜单, 控制状态栏是否出现 private JMenuItem mnuViewForeColor, mnuViewBackColor; //前景与背景颜 色项 private JMenuItem mnuFormatFont; // 字体菜单项 private JPopupMenu popupMenu; // 右键菜单 private JToolBar toolBar; // 工具栏 private ToolBarButton toolNew, toolOpen, toolSave, toolExit; //工具栏按钮 private JTextArea txtNote; // 记事本文本域 private JLabel labStatus; // 状态栏 private final UndoManager undo = new UndoManager(); // 用于撤销 private JFileChooser fileChooser; // 文件对话框 private boolean isChange = false; // 文件内容是否改变 private String fileName = null; // 保存文件名 private Font font; // 文本域字体 private FileNameExtensionFilter filter = new FileNameExtensionFilter("文本文件", "txt"); //设置文件过滤器 private Properties properties; FormMain(String title) { super(title); initialize(); } private void initialize() { /* 程序窗口居中 */ this.setLocationRelativeTo(this); this.setSize(600, 500); this.setExtendedState(JFrame.MAXIMIZED_BOTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // JTextArea 事件监听器 TxtNoteActionListener txtListener = new TxtNoteActionListener(); // 文件监听器 FileActionListener fileListener = new FileActionListener(); // // 设置工具栏 // toolBar = new JToolBar("记事本"); toolSave = new ToolBarButton(new ImageIcon("images\\saveHS.GIF")); toolOpen = new ToolBarButton(new ImageIcon("images\\OPENFOLD.GIF")); toolSave.setText("保存文件"); toolOpen.setText("打开文件"); toolSave.setActionCommand("保存"); toolOpen.setActionCommand("打开"); toolSave.addActionListener(fileListener); toolOpen.addActionListener(fileListener); toolBar.add(toolOpen); toolBar.addSeparator(); toolBar.add(toolSave); toolBar.addSeparator(); Border toolBorder = BorderFactory.createBevelBorder(1); toolBar.setBorder(toolBorder); // ‐‐‐‐‐设置工具栏结束‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ // // 设置状态栏 // labStatus = new JLabel("作者:孙丰伟"); labStatus.setBorder(BorderFactory.createBevelBorder(1)); this.add(bStatus, BorderLayout.SOUTH); // // 设置菜单 // JMenuBar mnuBar = new JMenuBar(); this.setJMenuBar(mnuBar); // // 文件菜单 // mnuFile = new JMenu("文件(F)"); Font mnuFont = new Font("新宋体", 0, 12); mnuFile.setFont(mnuFont); mnuFile.setMnemonic('F'); mnuFileNew = new JMenuItem("新建(N)"); mnuFileOpen = new JMenuItem("打开(O)"); mnuFileSave = new JMenuItem("保存(S)"); mnuFileSaveAs = new JMenuItem("另存为(A)"); mnuFileExit = new JMenuItem("退出(E)"); mnuFileNew.setMnemonic('N'); mnuFileOpen.setMnemonic('O'); mnuFileSave.setMnemonic('S'); mnuFileExit.setMnemonic('E'); mnuFileSaveAs.setMnemonic('A'); this.mnuFileNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK)); this.mnuFileOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK)); this.mnuFileSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK)); mnuFileNew.setActionCommand(FILE.NEW.toString()); mnuFileOpen.setActionCommand(FILE.OPEN.toString()); mnuFileSave.setActionCommand(FILE.SAVE.toString()); mnuFileSaveAs.setActionCommand(FILE.SAVEAS.toString()); mnuFileExit.setActionCommand(FILE.EXIT.toString()); mnuFileNew.addActionListener(fileListener); mnuFileOpen.addActionListener(fileListener); mnuFileSave.addActionListener(fileListener); mnuFileSaveAs.addActionListener(fileListener); mnuFileExit.addActionListener(fileListener); mnuFile.add(mnuFileNew); mnuFile.add(mnuFileOpen); mnuFile.add(mnuFileSave); mnuFile.addSeparator(); mnuFile.add(mnuFileExit); mnuBar.add(mnuFile); // 文件菜单设置结束‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ // // 编辑菜单 // mnuEdit = new JMenu("编辑(E)"); mnuEdit.setFont(mnuFont); mnuEdit.setMnemonic('E'); mnuEditCopy = new JMenuItem("复制(C)"); mnuEditCut = new JMenuItem("剪切(X)"); mnuEditPaste = new JMenuItem("粘贴(V)"); mnuEditDelete = new JMenuItem("删除(L)"); mnuEditUndo = new JMenuItem("撤销(U)"); mnuEditRedo = new JMenuItem("恢复(R)"); mnuEditCopy.setMnemonic('C'); mnuEditCut.setMnemonic('X'); mnuEditPaste.setMnemonic('V'); mnuEditDelete.setMnemonic('L'); mnuEditUndo.setMnemonic('U'); mnuEditRedo.setMnemonic('R'); mnuEditCopy.setActionCommand(EDIT.COPY.toString()); mnuEditCut.setActionCommand(EDIT.CUT.toString()); mnuEditPaste.setActionCommand(EDIT.PASTE.toString()); mnuEditDelete.setActionCommand(EDIT.DELETE.toString()); mnuEditUndo.setActionCommand(EDIT.UNDO.toString()); mnuEditRedo.setActionCommand(EDIT.REDO.toString()); mnuEditCopy.addActionListener(txtListener); mnuEditCut.addActionListener(txtListener); mnuEditPaste.addActionListener(txtListener); mnuEditDelete.addActionListener(txtListener); mnuEditUndo.addActionListener(txtListener); mnuEditRedo.addActionListener(txtListener); this.mnuEditCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)); this.mnuEditCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK)); this.mnuEditPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)); this.mnuEditDelete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_MASK)); this.mnuEditUndo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK)); this.mnuEditRedo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y, InputEvent.CTRL_MASK)); mnuEdit.add(mnuEditUndo); mnuEdit.add(mnuEditRedo); mnuEdit.addSeparator(); mnuEdit.add(mnuEditCopy); mnuEdit.add(mnuEditCut); mnuEdit.add(mnuEditPaste); mnuEdit.addSeparator(); mnuEdit.add(mnuEditDelete); mnuBar.add(mnuEdit); // 编辑菜单设置结束‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ // // 弹出式菜单 // popupMenu = new JPopupMenu("我的记事本"); mnuPCopy = new JMenuItem("复制(C)"); mnuPCut = new JMenuItem("剪切(X)"); mnuPPaste = new JMenuItem("粘贴(V)"); mnuPDelete = new JMenuItem("删除(L)"); mnuPCopy.setActionCommand(EDIT.COPY.toString()); mnuPCut.setActionCommand(EDIT.CUT.toString()); mnuPPaste.setActionCommand(EDIT.PASTE.toString()); mnuPDelete.setActionCommand(EDIT.DELETE.toString()); mnuPCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)); mnuPCopy.addActionListener(txtListener); mnuPCut.addActionListener(txtListener); mnuPPaste.addActionListener(txtListener); mnuPDelete.addActionListener(txtListener); mnuPCopy.setMnemonic('C'); mnuPCut.setMnemonic('X'); mnuPPaste.setMnemonic('V'); mnuPDelete.setMnemonic('L'); popupMenu.add(mnuPCopy); popupMenu.add(mnuPCut); popupMenu.add(mnuPPaste); popupMenu.addSeparator(); popupMenu.add(mnuPDelete); // 弹出式菜单设置结束‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ // // 格式菜单 // mnuFormat=new JMenu("格式(O)"); mnuFormat.setMnemonic('O'); mnuFormatFont=new JMenuItem("字体(F)"); mnuFormatFont.setMnemonic('F'); // // 字体菜单事件,调用字体窗口 JFontChooser // mnuFormatFont.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { Font tempFont=new Font(font.getFamily(),font.getStyle(),font.getSize()); JFontChooser fontChooser=new JFontChooser(FormMain.this,"设置字 体",true,tempFont); if(fontChooser.getNoteFont()!=null) { font=fontChooser.getNoteFont(); txtNote.setFont(font); // // 将字体写回属性文件 // properties=new Properties(); properties.setProperty("fontName", font.getFamily()); properties.setProperty("fontStyle", String.valueOf(font.getStyle())); properties.setProperty("fontSize", String.valueOf(font.getSize())); try { properties.store(new FileWriter("notepad.properties"), null); } catch (IOException e1) { // TODO Auto‐generated catch block e1.printStackTrace(); } } } }); mnuFormat.add(mnuFormatFont); mnuBar.add(mnuFormat); // // 视图菜单 // ViewActionListener viewAction = new ViewActionListener(); mnuView = new JMenu("视图(V)"); mnuView.setMnemonic('V'); mnuBar.add(mnuView); mnuViewStatus = new JCheckBoxMenuItem("状态栏", true); mnuViewForeColor = new JMenuItem("前景颜色"); // 设置文本颜色 mnuViewBackColor = new JMenuItem("背景颜色"); // 设置背景颜色 mnuViewStatus.setActionCommand(VIEW.STATUS.toString()); mnuViewForeColor.setActionCommand(VIEW.FOREGROUND.toString()); mnuViewBackColor.setActionCommand(VIEW.BACKGROUND.toString()); 。
java课程设计
课程设计(论文)题目名称记事本程序课程名称java 程序设计课程设计学生姓名学号系、专业指导教师2010年1 月3 日摘要本次课程设计的题目是用JA V A语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。
记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。
关键词:记事本程序;Java语言;swing组件目录1 问题描述 (3)2 需求分析 (3)3 概要设计 (3)3.1自定义类说明 (3)3.2 程序流程图 (7)4 详细设计 (7)4.1 jishiben类的实现 (7)4.2 GUI程序界面设计 (7)4.3 事件处理 (9)5 测试分析 (12)6 课程设计总结 (16)6.1设计体会 (16)6.2致谢 (16)参考文献 (17)附录(源程序清单) (18)1 问题描述设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
这次课程设计由卢炜、刘秀春、伍霜霜和我四个人合作完成。
卢炜负责概要设计,刘秀春负责4.1 jishiben类的实现和4.2 GUI程序界面设计,伍霜霜负责5测试分析。
由于4.3事件处理和撰写程序关系密切,这两项都由我负责。
并且根据伍霜霜的测试的结果重新调整程序。
2 需求分析本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。
创建记事本程序的操作步骤
创建记事本程序的操作步骤
嘿,朋友们!今天咱就来讲讲怎么创建记事本程序。
这可不难哦,
就像走路一样,一步一步来就好啦!
首先,咱得找到那个神奇的“开始”按钮,就像找到开启宝藏的钥匙
孔一样。
点一下它,嘿,一大串东西就冒出来啦。
然后在那里面找“所
有程序”,这就像是在一个大宝藏堆里找我们想要的宝贝。
找到“所有程序”后,再在里面仔细瞅瞅,就能发现“附件”啦。
这“附件”就像是一个藏着各种小工具的小盒子。
打开这个小盒子,哇哦,
“记事本”就在里面等着我们呢!就像找到了我们一直想要的那个小玩
具一样。
这时候,只要轻轻点一下“记事本”,嘿,它就出来啦!就像变魔术
一样,一个可以让我们写字、记录想法的地方就出现啦。
你说这神奇不神奇?就这么简单几步,我们就创建好记事本程序啦。
这就好像我们盖房子,一块砖一块砖地往上垒,最后就建成了一座漂
亮的小房子。
我们可以在记事本里写日记,记录每天的喜怒哀乐;可以写计划,
规划我们未来要做的事情;还可以写一些小灵感,说不定哪天这些小
灵感就能变成大创意呢!
想象一下,如果没有记事本,我们的那些想法、那些记忆该往哪里放呢?难道就任由它们在脑子里飘来飘去,最后消失不见吗?那多可惜呀!
所以呀,学会创建记事本程序是多么重要的一件事呀!它就像我们的一个小助手,随时准备帮我们记录下生活中的点点滴滴。
现在,你是不是觉得创建记事本程序其实很简单呀?那就赶紧去试试吧,让我们的生活因为有了记事本而变得更加丰富多彩!别再犹豫啦,行动起来才是最重要的呢!。
java课程设计记事本设计报告
java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。
1.理解Java编程语言的基本语法和结构。
2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。
3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。
4.熟悉Java中的常用类库和方法。
5.能够运用Java编程语言编写简单的程序。
6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。
7.能够分析并解决编程过程中遇到的问题。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。
2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。
3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。
二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。
1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。
–类和对象的概念,封装、继承和多态的原理。
–常用类库和方法的使用。
2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。
–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。
–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。
2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。
3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。
4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。
使用记事本编写java程序进行自我介绍
使用记事本编写java程序进行自我介绍Hi, my name is Emily. I am a computer science student with a passion for coding and problem solving. 你好,我叫Emily。
我是一名对编程和问题解决充满热情的计算机科学学生。
I have always been fascinated by the endless possibilities that programming offers. 从小到大,我一直被编程所带来的无限可能所吸引。
My journey with Java began when I was in high school. I remember the first time I wrote a simple "Hello, World!" program and was amazed at how a few lines of code could produce a message on the screen. 我的Java之旅始于我高中时期。
记得第一次写了一个简单的“Hello, World!”程序时,我被几行代码是如何在屏幕上产生一条消息而震惊。
As I delved deeper into Java, I discovered its versatility and power. Java's object-oriented nature allows for the creation of complex, modular programs, which was incredibly appealing to me. 随着我对Java的深入了解,我发现它的多功能性和强大性。
Java的面向对象的特性允许创建复杂、模块化的程序,这对我来说非常吸引人。
One of my most memorable coding projects was when I developed a Java application for a school project. It was a teamwork project where I collaborated with my classmates, and together we built a program that helped students manage their time and tasks effectively. 我在编码项目中最难忘的经历之一,就是我为学校项目开发一个Java应用程序。
《Java》课程设计》记事本
《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。
(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。
首先是标准型的记事本,拥有文件、编辑。
格式和帮助。
如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。
如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。
如图三所示。
图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。
如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。
如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。
如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。
Java记事本源代码(完整)
/*** 作品:记事本* 作者:**** 功能:简单的文字编辑*/import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;class NotePad extends JFrame{private JMenuBar menuBar;private JMenu fielMenu,editMenu,formMenu,aboutMenu;private JMenuItemnewMenuItem,openMenuItem,saveMenuItem,exitMenuItem;private JMenuItemcutMenuItem,copyMenuItem,pasteMenuItem,foundItem,replaceItem,s electAll;private JMenuItem font,about;private JTextArea textArea;private JFrame foundFrame,replaceFrame;private JCheckBoxMenuItem wrapline;private JTextField textField1=new JTextField(15);private JTextField textField2=new JTextField(15);private JButton startButton,replaceButton,reallButton;int start=0;String value;File file=null;JFileChooser fileChooser=new JFileChooser();boolean wrap=false;public NotePad(){//创建文本域textArea=new JTextArea();add(new JScrollPane(textArea),BorderLayout.CENTER);//创建文件菜单及文件菜单项fielMenu=new JMenu("文件");fielMenu.setFont(new Font("微软雅黑",0,15));newMenuItem=new JMenuItem("新建",newImageIcon("icons\\new24.gif"));newMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_N,InputEvent.CTRL_MASK));newMenuItem.addActionListener(listener);openMenuItem=new JMenuItem("打开",newImageIcon("icons\\open24.gif"));openMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent .VK_O,InputEvent.CTRL_MASK));openMenuItem.addActionListener(listener);saveMenuItem=new JMenuItem("保存",newImageIcon("icons\\save.gif"));saveMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent .VK_S,InputEvent.CTRL_MASK));saveMenuItem.addActionListener(listener);exitMenuItem=new JMenuItem("退出",newImageIcon("icons\\exit24.gif"));exitMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent .VK_E,InputEvent.CTRL_MASK));exitMenuItem.addActionListener(listener);//创建编辑菜单及菜单项editMenu=new JMenu("编辑");editMenu.setFont(new Font("微软雅黑",0,15));cutMenuItem=new JMenuItem("剪切",newImageIcon("icons\\cut24.gif"));cutMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_X,InputEvent.CTRL_MASK));cutMenuItem.addActionListener(listener);copyMenuItem=new JMenuItem("复制",newImageIcon("icons\\copy24.gif"));copyMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent .VK_C,InputEvent.CTRL_MASK));copyMenuItem.addActionListener(listener);pasteMenuItem=new JMenuItem("粘贴",newImageIcon("icons\\paste24.gif"));pasteMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEven t.VK_V,InputEvent.CTRL_MASK));pasteMenuItem.addActionListener(listener);foundItem=new JMenuItem("查找");foundItem.setFont(new Font("微软雅黑",Font.BOLD,13));foundItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK _F,InputEvent.CTRL_MASK));foundItem.addActionListener(listener);replaceItem=new JMenuItem("替换");replaceItem.setFont(new Font("微软雅黑",Font.BOLD,13));replaceItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_R,InputEvent.CTRL_MASK));replaceItem.addActionListener(listener);selectAll=new JMenuItem("全选");selectAll.setFont(new Font("微软雅黑",Font.BOLD,13));selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK _A,InputEvent.CTRL_MASK));selectAll.addActionListener(listener);//创建格式菜单及菜单项formMenu=new JMenu("格式");formMenu.setFont(new Font("微软雅黑",0,15));wrapline=new JCheckBoxMenuItem("自动换行");wrapline.setFont(new Font("微软雅黑",Font.BOLD,13));wrapline.addActionListener(listener);wrapline.addChangeListener(new ChangeListener() {public void stateChanged(ChangeEvent e) {if(wrapline.isSelected()){textArea.setLineWrap(true);}elsetextArea.setLineWrap(false);}});font=new JMenuItem("字体");font.setFont(new Font("微软雅黑",Font.BOLD,13)); font.addActionListener(listener);//创建关于菜单aboutMenu=new JMenu("关于");aboutMenu.setFont(new Font("微软雅黑",0,15)); about=new JMenuItem("记事本……");about.setFont(new Font("微软雅黑",Font.BOLD,13)); about.addActionListener(listener);//添加文件菜单项fielMenu.add(newMenuItem);fielMenu.add(openMenuItem);fielMenu.add(saveMenuItem);fielMenu.addSeparator();fielMenu.add(exitMenuItem);//添加编辑菜单项editMenu.add(cutMenuItem);editMenu.add(copyMenuItem);editMenu.add(pasteMenuItem);editMenu.add(foundItem);editMenu.add(replaceItem);editMenu.addSeparator();editMenu.add(selectAll);//添加格式菜单项formMenu.add(wrapline);formMenu.add(font);//添加关于菜单项aboutMenu.add(about);//添加菜单menuBar=new JMenuBar();menuBar.add(fielMenu);menuBar.add(editMenu);menuBar.add(formMenu);menuBar.add(aboutMenu);setJMenuBar(menuBar);//创建两个框架,用作查找和替换foundFrame=new JFrame();replaceFrame=new JFrame();//创建两个文本框textField1=new JTextField(15);textField2=new JTextField(15);startButton=new JButton("开始");startButton.addActionListener(listener);replaceButton=new JButton("替换为");replaceButton.addActionListener(listener);reallButton=new JButton("全部替换");reallButton.addActionListener(listener);}//创建菜单项事件监听器ActionListener listener=new ActionListener() {public void actionPerformed(ActionEvent e) {String name=e.getActionCommand();if(e.getSource() instanceof JMenuItem){if("新建".equals(name)){textArea.setText("");file=null;}if("打开".equals(name)){if(file!=null){fileChooser.setSelectedFile(file);}intreturnVal=fileChooser.showOpenDialog(NotePad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=fileChooser.getSelectedFile();}try{FileReader reader=new FileReader(file);int len=(int)file.length();char[] array=new char[len];reader.read(array,0,len);reader.close();textArea.setText(new String(array));}catch(Exception e_open){e_open.printStackTrace();}}}if("保存".equals(name)){if(file!=null){fileChooser.setSelectedFile(file);}intreturnVal=fileChooser.showSaveDialog(NotePad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=fileChooser.getSelectedFile();}try{FileWriter writer=new FileWriter(file);writer.write(textArea.getText());writer.close();}catch (Exception e_save) {e_save.getStackTrace();}}if("退出".equals(name)){System.exit(0);}if("剪切".equals(name)){textArea.cut();}if("复制".equals(name)){textArea.copy();}if("粘贴".equals(name)){textArea.paste();}if("查找".equals(name)){value=textArea.getText();foundFrame.add(textField1,BorderLayout.CENTER);foundFrame.add(startButton,BorderLayout.SOUTH);foundFrame.setLocation(300,300);foundFrame.setTitle("查找");foundFrame.pack();foundFrame.setVisible(true);foundFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE );}if("替换".equals(name)){value=textArea.getText();JLabel label1=new JLabel("查找内容:");JLabel label2=new JLabel("替换为:");JPanel panel1=new JPanel();panel1.setLayout(new GridLayout(2,2));JPanel panel2=new JPanel();panel2.setLayout(new GridLayout(1,3));replaceFrame.add(panel1,BorderLayout.NORTH);replaceFrame.add(panel2,BorderLayout.CENTER);panel1.add(label1);panel1.add(textField1);panel1.add(label2);panel1.add(textField2);panel2.add(startButton);panel2.add(replaceButton);panel2.add(reallButton);replaceFrame.setTitle("替换");replaceFrame.setLocation(300,300);replaceFrame.pack();replaceFrame.setVisible(true);replaceFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLO SE);}if("开始".equals(name)||"下一个".equals(name)){String temp=textField1.getText();int s=value.indexOf(temp,start);if(value.indexOf(temp,start)!=-1){textArea.setSelectionStart(s);textArea.setSelectionEnd(s+temp.length());textArea.setSelectedTextColor(Color.GREEN);start=s+1;startButton.setText("下一个");}else {JOptionPane.showMessageDialog(foundFrame, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));foundFrame.dispose();}}if("替换为".equals(name)){String temp=textField1.getText();int s=value.indexOf(temp,start);if(value.indexOf(temp,start)!=-1){textArea.setSelectionStart(s);textArea.setSelectionEnd(s+temp.length());textArea.setSelectedTextColor(Color.GREEN);start=s+1;textArea.replaceSelection(textField2.getText());}else {JOptionPane.showMessageDialog(foundFrame, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));foundFrame.dispose();}}if("全部替换".equals(name)){String temp=textArea.getText();temp=temp.replaceAll(textField1.getText(),textField2.getTex t());textArea.setText(temp);}if("全选".equals(name)){textArea.selectAll();}if("字体".equals(name)){FontDialog fontDialog=newFontDialog(NotePad.this);fontDialog.setVisible(true);if(textArea.getFont()!=fontDialog.getFont()){textArea.setFont(fontDialog.getFont());}}if("记事本……".equals(name)){AboutDialog aboutDialog=newAboutDialog(NotePad.this);aboutDialog.setVisible(true);}}};//创建字体设置对话面板,并添加相应事件监听器class FontDialog extends JDialog implements ItemListener, ActionListener, WindowListener{public JCheckBox Bold=new JCheckBox("Bold",false);public JCheckBox Italic=new JCheckBox("Italic",false);public List Size,Name;public int FontName;public int FontStyle;public int FontSize;public JButton OK=new JButton("OK");public JButton Cancel=new JButton("Cancel");public JTextArea Text=new JTextArea("字体预览文本域\n0123456789\nAaBbCcXxYyZz");public FontDialog(JFrame owner) {super(owner,"字体设置",true);GraphicsEnvironmentg=GraphicsEnvironment.getLocalGraphicsEnvironment();String name[]=g.getAvailableFontFamilyNames();Name=new List();Size=new List();FontName=0;FontStyle=0;FontSize=8;int i=0;Name.add("Default Value");for(i=0;i<name.length;i++)Name.add(name[i]);for(i=8;i<257;i++)Size.add(String.valueOf(i));this.setLayout(null);this.setBounds(250,200,480, 306);this.setResizable(false);OK.setFocusable(false);Cancel.setFocusable(false);Bold.setFocusable(false);Italic.setFocusable(false);Name.setFocusable(false);Size.setFocusable(false);Name.setBounds(10, 10, 212, 259);this.add(Name);Bold.setBounds(314, 10, 64, 22);this.add(Bold);Italic.setBounds(388, 10, 64, 22);this.add(Italic);Size.setBounds(232, 10, 64, 259);this.add(Size);Text.setBounds(306, 40, 157, 157);this.add(Text);OK.setBounds(306, 243, 74, 26);this.add(OK);Cancel.setBounds(390, 243, 74, 26);this.add(Cancel);Name.select(FontName);Size.select(FontSize);Text.setFont(getFont());Name.addItemListener(this);Size.addItemListener(this);Bold.addItemListener(this);Italic.addItemListener(this);OK.addActionListener(this);Cancel.addActionListener(this);this.addWindowListener(this);}public void itemStateChanged(ItemEvent e) {Text.setFont(getFont());}public void actionPerformed(ActionEvent e) {if(e.getSource()==OK){FontName=Name.getSelectedIndex();FontStyle=getStyle();FontSize=Size.getSelectedIndex();this.setVisible(false);}else cancel();}public void windowClosing(WindowEvent e) {cancel();}public Font getFont(){if(Name.getSelectedIndex()==0) return new Font("新宋体",getStyle(),Size.getSelectedIndex()+8);else return newFont(Name.getSelectedItem(),getStyle(),Size.getSelectedIndex() +8);}public void cancel(){Name.select(FontName);Size.select(FontSize);setStyle();Text.setFont(getFont());this.setVisible(false);}public void setStyle(){if(FontStyle==0 || FontStyle==2)Bold.setSelected(false);else Bold.setSelected(true);if(FontStyle==0 || FontStyle==1)Italic.setSelected(false);else Italic.setSelected(true);}public int getStyle(){int bold=0,italic=0;if(Bold.isSelected()) bold=1;if(Italic.isSelected()) italic=1;return bold+italic*2;}public void windowActivated(WindowEvent arg0) {}public void windowClosed(WindowEvent arg0) {}public void windowDeactivated(WindowEvent arg0) {}public void windowDeiconified(WindowEvent arg0) {}public void windowIconified(WindowEvent arg0) {}public void windowOpened(WindowEvent arg0) {} }//创建关于对话框class AboutDialog extends JDialog implements ActionListener{ public JButton OK,Icon;public JLabel Name,Version,Author,Java;public JPanel Panel;AboutDialog(JFrame owner) {super(owner,"关于",true);OK=new JButton("OK");Icon=new JButton(new ImageIcon("icons\\edit.gif"));Name=new JLabel("Notepad");Version=new JLabel("Version 1.0");Java=new JLabel("JRE Version 6.0");Author=new JLabel("Copyright (c) 11-5-2012 By Jianmin Chen");Panel=new JPanel();Color c=new Color(0,95,191);Name.setForeground(c);Version.setForeground(c);Java.setForeground(c);Author.setForeground(c);Panel.setBackground(Color.white);OK.setFocusable(false);this.setBounds(250,200,280, 180);this.setResizable(false);this.setLayout(null);Panel.setLayout(null);OK.addActionListener(this);Icon.setFocusable(false);Icon.setBorderPainted(false);Author.setFont(new Font(null,Font.PLAIN,11));Panel.add(Icon);Panel.add(Name);Panel.add(Version);Panel.add(Author);Panel.add(Java);this.add(Panel);this.add(OK);Panel.setBounds(0, 0, 280, 100);OK.setBounds(180, 114, 72, 26);Name.setBounds(80, 10, 160, 20);Version.setBounds(80, 27, 160, 20);Author.setBounds(15, 70, 250, 20);Java.setBounds(80, 44, 160, 20);Icon.setBounds(16, 14, 48, 48);}public void actionPerformed(ActionEvent e) { this.setVisible(false);}}}//创建记事本public class ChenJianmin {public static void main(String[] args){EventQueue.invokeLater(new Runnable() {public void run() {NotePad notePad=new NotePad();notePad.setTitle("记事本");notePad.setVisible(true);notePad.setBounds(100,100,800,600);notePad.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}});}}。
记事本代码
记事本代码#include<iostream.h>#include<string.h>#include<ctype.h> //为了以下使用isdigit(string)函数作铺垫typedef struct node{char a[100]; //每行100字符node * next; //关于此处next的作用还不清楚,但不可去掉}node;class notepad{public:notepad(){i=1;line=0;}~notepad(){}void operator_interface();void input();void ct_input();void delete1();void copy();void paste();void open();void save();char * find();void print();char store[100]; //储存需复制内容private:char * ptr_array[100]; //指针数组,记录100行行指针int linelen[100]; //最大100行int line; //当前总行数char d[30]; //记录操作数据int k,l; //记录当前查找行ilint i; //文档录入初始标记};void notepad::operator_interface(){cout<<"********************************************************"<<en dl;cout<<"***0.继续录入文档"<<endl;cout<<"***1.输入文档内容"<<endl;cout<<"***2.删除某些内容"<<endl;cout<<"***3.复制某些内容"<<endl;cout<<"***4.粘贴某些内容"<<endl;cout<<"***5.打开文档内容"<<endl;cout<<"***6.是否保存文档"<<endl;cout<<"***7.获取操作帮助"<<endl;cout<<"***8.我要结束操作"<<endl;cout<<"********************************************************"<<en dl;}void notepad::input(){-99"<<endl; cout<<"输入总行数,格式:01char e[10];cin>>e;char *lin=e;if(*(lin+2)=='\0'&&isdigit(*lin)&&isdigit(*(lin+1))){line=(*lin-'0')*10+(*(lin+1)-'0');if(line!=0){cout<<"请输入各行内容"<<endl;while(i<=line){cout<<"第"<<i<<"行 ";node *p=new node;cin>>p->a;ptr_array[i]=p->a;linelen[i]=strlen(p->a);i++;}}else cout<<"你输入的行数有误"<<endl;}else cout<<"你输入的行数有误"<<endl; }void notepad::ct_input(){if(line!=0){int i=line+1;cout<<"输入要录入的总行数,格式:01-99"<<endl;char e[10];cin>>e;char *lin=e;if(*(lin+2)=='\0'&&isdigit(*lin)&&isdigit(*(lin+1))){ line=line+(*lin-'0')*10+(*(lin+1)-'0');if(line!=0){cout<<"请输入各行内容"<<endl;while(i<=line){cout<<"第"<<i<<"行 ";node *p=new node;cin>>p->a;ptr_array[i]=p->a;linelen[i]=strlen(p->a);i++;}}else cout<<"你输入的行数有误"<<endl;}else cout<<"你输入的行数有误"<<endl;}else cout<<"当前文档并无内容,请先输入1录入文档"<<endl; }void notepad::print(){cout<<endl<<endl;int j=1;cout<<"当前文档内容为:"<<endl;while(j<=line){cout<<"第"<<j<<"行 ";char *q=ptr_array[j];while(*q!='\0'){cout<<*q;q++;}cout<<endl;j++;}cout<<endl;}char * notepad::find(){ //暂未解决跨行查找问题k=1;cin>>d;l=strlen(d);char *n=d;int c=1;char *m=ptr_array[k];while(k<=line){if(*m=='\0'){k=k+1;if(k<=line)m=ptr_array[k];}if(*m!='\0'&&*m!=*n)m++;while(*n!='\0'&&*m!='\0'&&*m==*n){ m=m+1;n=n+1;c=c+1;}if(*n=='\0'){return m-c+1;}else {n=d;c=1;}}return NULL;}void notepad::delete1(){char * dp1;char * dp2;cout<<"请输入要删除的文本前几位字符,注意区分"<<endl;dp1=find();int l1=k;cout<<"请输入要删除的文本末几位字符,注意区分"<<endl;dp2=find();int l2=k;if(dp1==NULL||dp2==NULL||l1>l2)cout<<"输入错误"<<endl;else{dp2=dp2+l;if(l1==l2){while(*dp2!='\0'){*dp1=*dp2;dp1++;dp2++;}*dp1='\0';linelen[l1]=strlen(ptr_array[l1]);}else {if(l1+1<l2){for(intt1=l1+1,t2=l2;t2<=line;t1++,t2++)ptr_array[t1]=ptr_array[t2]; line=line-l2+l1+1;l2=l1+1;}*dp1='\0';char *dp21=ptr_array[l2];while(*(dp2-1)!='\0'){*dp21=*dp2;dp21++;dp2++;}linelen[l1]=strlen(ptr_array[l1]);linelen[l2]=strlen(ptr_array[l2]);}if(linelen[l1]==0){for(int v=l1;v<=line;v++)ptr_array[v]=ptr_array[v+1]; line--;}if(linelen[l2]==0){for(int v=l2;v<=line;v++)ptr_array[v]=ptr_array[v+1]; line--;}}}void notepad::copy(){char * cp1;char * cp2;cout<<"请输入要复制的文本前几位字符,注意区分"<<endl; cp1=find();int l1=k;cout<<"请输入要复制的文本末几位字符,注意区分"<<endl; cp2=find();int l2=k;char *pt=store;if(cp1!=NULL&&cp2!=NULL&&l1<=l2){cp2=cp2+l;while(cp1!=cp2){if(*cp1=='\0'){l1++;cp1=ptr_array[l1];}else {*pt=*cp1;pt++;cp1++;}}*pt='\0';}else cout<<"输入错误"<<endl; }void notepad::paste(){cout<<"请输入要粘贴位置的前几位字符(在首字符后粘贴)"<<endl; char *pat=find();if(pat!=NULL){int choice2;cout<<"请选择要粘贴内容:1/从内存中0/我自己输入"<<endl; cin>>choice2;if(!choice2)cin>>store;char *ppt=store;for(char *pat1=pat;*(pat1+1)!='\0';pat1++); //定位至末尾int pl=strlen(store);*(pat1+pl+1)='\0';while(pat1!=pat){ //移位*(pat1+pl)=*pat1;pat1--;}pat++;for(int u=1;u<=pl;u++){*pat=*ppt;ppt++;pat++;}linelen[k]=linelen[k]+pl;}else cout<<"输入错误"<<endl;}void notepad::open(){print();}void notepad::save(){cout<<"是否保存文件,1/是0/否"<<endl;char g[10];int choice1;cin>>g;char *choi=g;if(*(choi+1)=='\0'&&isdigit(*choi)){ choice1=*choi-'0';if(choice1==1)cout<<"文件已保存"<<endl; else if(choice1==0){for(int w=1;w<=line;w++){ //相当于析构函数的作用ptr_array[w]=NULL;linelen[w]=0;}line=0;}else cout<<"输入错误"<<endl;}else cout<<"输入错误"<<endl; }void main(){cout<<"欢迎使用本程序,您可以在要输入文档内容时通过切换输入法实现输入汉字,byhk"<<endl;notepad b;b.operator_interface();char f[10];int choice;cin>>f;char *choic=f;if(*(choic+1)=='\0'&&isdigit(*choic)){ //错误输入处理机制choice=*choic-'0';}else choice=9;while(choice!=8){switch(choice){case 0:b.ct_input();break;case 1:b.input();break;case 2:b.delete1();b.print();break;case 3:{b.copy();cout<<endl;char *p_t=b.store;int fzcd=strlen(b.store);cout<<"你所要复制的内容长度为"<<endl<<fzcd<<endl; cout<<"你所要复制的内容为"<<endl;while(*p_t!='\0'){cout<<*p_t;p_t++;}cout<<endl;}break;case 4:b.paste();b.print();break;case 5:b.open();break;case 6:b.save();break;case 7:b.operator_interface();break;case 8:break;default:break;}if(choice==9||(choice>=0&&choice<=7)){ //输入错误时的操作及输入正确时 //的继续操作判断if(choice==9)cout<<"你输入的操作有误,请重新输入,输入 7 获取操作帮助"<<endl;else cout<<"继续你的操作,输入 7 获取操作帮助"<<endl;cin>>f;choic=f;if(*(choic+1)=='\0'&&isdigit(*choic)) //错误输入处理机制choice=*choic-'0';else choice=9;}}cout<<"感谢您的使用"<<endl; }。
Eclipse开发记事本程序
Eclipse开发记事本程序1、新建项目,新建Visual Class,名称输入TextEditorApp,Style选Swing 下的Frame,选中public static void main(String[] args),完成。
2、进入JFrame中心面板,右击鼠标,设置中心面板的Layout为null布局。
3、在palette的Swing Containers下选择jScrollPane,建立滚动面板,选择JtextArea建立多行文本,重命名为textArea。
4、建立菜单栏jJMenuBar,插入四个菜单JMenu,分别改名为文件、编辑、工具、帮助;在“文件”下插入菜单项新建、打开、保存、退出;在“编辑”下插入菜单项复制、剪切、粘贴、全选、颜色;在“工具”下插入菜单项计算器、记事本;在“帮助”插入菜单项关于。
5、给“新建”菜单添加actionPerformed事件,在对应的代码处写入:textArea.setText(null);TextEditorApp.this.setTitle("无标题 - 记事本");6、给“打开”菜单添加actionPerformed事件,在对应的代码处写入:File f1;JFileChooser jfc1 = new JFileChooser();int num1 = jfc1.showOpenDialog(TextEditorApp.this);if(num1==JFileChooser.APPROVE_OPTION){try{f1 = jfc1.getSelectedFile();TextEditorApp.this.setTitle(f1.getName());FileReader fr = new FileReader(f1);BufferedReader br = new BufferedReader(fr);String str;while((str = br.readLine())!=null){textArea.setText(str);}fr.close();br.close();}catch(FileNotFoundException e1){e1.printStackTrace();}catch(IOException e2){e2.printStackTrace();}}7、给“保存”菜单添加actionPerformed事件,在对应的代码处写入:File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(TextEditorApp.this);if(num2==JFileChooser.APPROVE_OPTION){f2=jfc2.getSelectedFile();TextEditorApp.this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2);BufferedWriter bw = new BufferedWriter(fw);bw.write(textArea.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}}8、给“退出”菜单添加actionPerformed事件,在对应的代码处写入:int a = JOptionPane.showConfirmDialog(TextEditorApp.this,"文件已被改变,是否要保存?","提示",JOptionPane.YES_NO_CANCEL_OPTION);if(a==1){TextEditorApp.this.dispose();}else if(a==0){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(TextEditorApp.this);if(num2==JFileChooser.APPROVE_OPTION){f2=jfc2.getSelectedFile();TextEditorApp.this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2);BufferedWriter bw = new BufferedWriter(fw);bw.write(textArea.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}TextEditorApp.this.dispose();}}9、给“编辑”菜单中的复制、剪切、粘贴、全选添加actionPerformed事件,在对应的代码处分别写入:textArea.copy();textArea.cut();textArea.paste();textArea.selectAll();10、给“颜色”菜单添加actionPerformed事件,在对应的代码处写入:Color color=JColorChooser.showDialog(textArea, "选择颜色", Color.BLACK);textArea.setForeground(color);11、给“记事本”菜单添加actionPerformed事件,在对应的代码处写入:try{String command = "notepad.exe";Process child = Runtime.getRuntime().exec(command);}catch (IOException ex){}12、给“计算器”菜单添加actionPerformed事件,在对应的代码处写入:try{String command = "calc.exe";Process child = Runtime.getRuntime().exec(command);}catch (IOException ex){}13、给“关于”菜单添加actionPerformed事件,在对应的代码处写入:String message = "--------\n版本:1.0\n作者:刘艳慧" + "\n\n感谢您的使用!";JOptionPane.showMessageDialog(TextEditorApp.this, message, "关于", JOptionPane.PLAIN_MESSAGE);注意:不能识别的文件需导入包,在错误处单击,选择需导入的包文件,双击引入。
JAVA--简单记事本源代码
JAVA--简单记事本源代码import javax.swing.JFrame;import javax.swing.JTextArea;import java.awt.*;import java.awt.event.*;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import javax.swing.*;import javax.swing.plaf.FileChooserUI;public class notepad extends JFrame implements ActionListener{//定义所需要的组件JTextArea jta=null;JMenuBar jmb=null;JMenu jm=null;JMenuItem jmi1=null;JMenuItem jmi2=null;public static void main(String[]args){new notepad();}public notepad(){//把组件添加到窗体上jta=new JTextArea();jmb=new JMenuBar();this.add(jta);this.setJMenuBar(jmb);//设置窗体属性this.setTitle("简易记事本");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(400, 300);this.setVisible(true);//把菜单添加进菜单条jm=new JMenu("⽂件");jm.setMnemonic('f');jmb.add(jm);//把⼦菜单加⼊⾄菜单jmi1=new JMenuItem("打开");jmi2=new JMenuItem("保存");jmi1.setActionCommand("open");jmi2.setActionCommand("save");jm.add(jmi1);jm.add(jmi2);//为两个字菜单注册事件监听jmi1.addActionListener(this);jmi2.addActionListener(this);}public void actionPerformed(ActionEvent e){//对点击了打开进⾏处理if(e.getActionCommand().equals("open")){//创建⼀个⽂件选择组件JFileChooser jfc1=new JFileChooser();//设置⽂件选择器的名字jfc1.setDialogTitle("请选择⽂件....");//设置⽂件选择组件的类型(打开类型)jfc1.showOpenDialog(null);//显⽰该组件jfc1.setVisible(true);//获取选择⽂件的绝对路径String s;s=jfc1.getSelectedFile().getAbsolutePath();//将该⽂件显⽰到记事本上BufferedReader br=null;FileReader fr=null;try{//创建⼀个带缓冲的⽂件读取对象fr=new FileReader(s);br=new BufferedReader(fr);String text="";String m=null;//循环读取⽂件while((m=br.readLine())!=null){text+=m+"\r\n";}//将读取的结果打印到记事本上⾯this.jta.setText(text);}catch(Exception e1){e1.printStackTrace();}finally{//关掉打开的⽂件try{br.close();fr.close();}catch(Exception e2){e2.printStackTrace();}}}else if(e.getActionCommand().equals("save")){//创建⼀个⽂件选择组件JFileChooser jfc=new JFileChooser();//设置⽂件选择的名称jfc.setDialogTitle("另存为");//设置⽂件选择组件的类型(保存类型)jfc.showSaveDialog(null);//显⽰该组件jfc.setVisible(true);//获取选择⽂件的绝对路径String filename;filename=jfc.getSelectedFile().getAbsolutePath(); //将记事本内的⽂本保存⾄该路径BufferedWriter bw=null;FileWriter fw=null;try{//创建⽂件输出⽂件fw=new FileWriter(filename);bw=new BufferedWriter(fw);//获取⽂本String outtext="";outtext=this.jta.getText();//输出⽂本fw.write(outtext);}catch(Exception e2){e2.printStackTrace();}finally{//关闭打开的输出⽂件try{bw.close();fw.close();}catch(Exception e3){e3.printStackTrace();}}}}}。
Java开发日历记事本
E m i xj cc e. — a : s@cc. t n l l n c
h t :ww d z .e .n t / w.n sn t p/ o
Te h+8 55l 56 96 56 09 4 6— 一 90 3 9 6
C m ue K o  ̄d ea d T c n l y电脑 知识 与技术 o p tr n we g n e h o g o
号 码 排 列算 法 : 方 法包 含 两 个 整 形 参 数 , 该 分别 是 星期 几 和 月 天数 。该 方法 的作 用是 将 日期 一 次 排 列 人 日历 牌 的 网格 中 , 日期
2算 法描述
主 类 的算 法 :a n aP d类 首先 创 建 用 于 布 局 的 面 板 , 面 添 加 日历 牌 , 面 添加 记事 本 。然后 调 用 C ln aPd方 法 , 方 法 C l dra e 左 右 a d ra e 该
有 三 个 分 别 是 y a, n , a e r mo t d y的整 形 参 数 。该 方 法 管 理 日历 记 事 本 的 主 界 面 。在 E历 牌 部 分 使 用 网格 布 局 , h t 行数 和列 数 均 为 7 。其 中第 一 行 显示 星期 标 题 的标 签 . 续 六 行 显 示 日期 的标 签 。 后
g g .Thebai unc on fCae d rh v r w s a a em odfe . ua e s f t so l n a a e b o e nd d t c i i d The i bai unci so N o e a v np , a ,d lt ,ve . scf ton .f t p d ha e i ut sve ee e iw
java桌面课程设计记事本
java桌面课程设计记事本一、教学目标本课程的目标是让学生掌握Java语言实现桌面应用程序的基本技能,通过学习Java语言基础和GUI编程,培养学生的编程能力和解决实际问题的能力。
在知识目标方面,要求学生掌握Java语言基本语法、面向对象编程思想、常用类库和GUI组件的使用。
在技能目标方面,要求学生能够独立设计并实现一个桌面记事本应用程序,掌握Java编程的基本流程。
在情感态度价值观目标方面,培养学生的团队合作意识,提高学生解决问题的能力,使学生认识到计算机编程在实际应用中的重要性。
二、教学内容本课程的教学内容主要包括Java语言基础、面向对象编程、GUI编程和桌面应用程序设计。
具体包括以下几个部分:1.Java语言基础:Java语言的基本语法、数据类型、运算符、控制结构、数组、字符串等。
2.面向对象编程:类与对象、封装、继承、多态、接口、集合等。
3.GUI编程:Swing组件、事件处理、布局管理、菜单栏、工具栏等。
4.桌面应用程序设计:记事本应用程序的需求分析、设计、实现和测试。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。
包括:1.讲授法:讲解Java语言基础、面向对象编程和GUI编程的基本概念和原理。
2.案例分析法:分析典型的桌面应用程序案例,引导学生学会分析问题和解决问题。
3.实验法:让学生动手编写代码,实现桌面记事本应用程序,提高学生的实际操作能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,培养学生的团队合作意识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《Java核心技术卷I》、《Java GUI编程》等。
2.参考书:《Java编程思想》、《Effective Java》等。
3.多媒体资料:教学PPT、视频教程、在线代码示例等。
4.实验设备:计算机、网络环境、编程软件(如Eclipse、IntelliJ IDEA等)。
java编程记事本代码
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class Notepad extends JFrame {係统组件声明private JMenuBar menuBar = new JMe nuBar(; private JEditorPa ne content = new JEditorPa ne(; private JScrollPa ne scroll = new JScrollPa ne(c ontent; private JFileChooser filechooser = new JFileChooser(; private BorderLayout bord = new BorderLayout(; private JLabel statusBar = new JLabel(; private JPanel pane = new JPanel(; private File file = null; /定义文件菜单private JMenu fileMenu = new JMenu(; private JMenultem newMenultem = new JMenultem(; private JMe nultem ope nMen ultem = new JMe nultem(; private JMe nultem saveMe nultem = new JMe nultem(; private JMe nultem saveAsMe nultem = new JMe nultem(; private JMe nultem pageSetupMe nultem = new JMe nultem(; private JMe nultem prin tMe nultem = new JMe nultem(; private JMe nultem exitMe nultem = new JMenultem(; // 定义风格菜单private JMenu styleMenu = new JMenu(; private Butt on Group styleMe nu Group = new Butt on Group(; private JRadioButt onMen ultem javaStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem metalStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem windowsStyleMenultem = new JRadioButtonMenultem(; // 定义帮助菜单private JMe nultem aboutMe nultem = new JMe nultem(; private JMe nultem helpTopicMe nultem =new JMenultem(; private JMenu helpMenu = new JMenu(; 〃构造函数public Notepad({ initComponents(; } private void initComponents({ // 添加子菜单项到文件菜单fileMe nu.setText("\u6587\u4ef6 (F"; n ewMe nultem.setText(” 新建(NCtrl+N"; ope nMen ultem.setText(” 打开(O…Ctrl+O"; saveMe nultem.setText(”保存(S Ctrl+S"; saveAsMenultem.setText(” 另存为(A..."; pageSetupMenultem.setText(” 页面设置(U..."; printMenultem.setText(” 打印(P... Ctrl+P"; exitMe nultem.setText(” 退出";fileMe nu.add( newMe nultem;fileMe nu .add(ope nMen ultem; fileMe nu .add(saveMe nultem; fileMe nu .add(saveAsMe nultem; fileMe nu.addSeparator(; fileMenu.add(pageSetupMenultem;fileMenu.add(printMenultem; fileMe nu.addSeparator(; fileMe nu.add(exitMe nultem; // 添加子菜单项到风格菜单styleMe nu.setText(‘ 风格(S"; javaStyleMe nultem.setText("Java 默认";metalStyleMe nultem.setText("Metal 风格";wi ndowsStyleMe nultem.setText("Wi ndows 风格";styleMe nuGroup.add(javaStyleMe nultem;styleMe nuGroup.add(metalStyleMe nuItem;styleMe nu Group.add(wi ndowsStyleMe nultem; styleMe nu .add(javaStyleMe nultem; styleMe nu.add(metalStyleMe nultem; styleMe nu.add(wi ndowsStyleMe nultem; // 添加子菜单项到帮助菜单helpMenu.setText(‘帮助(H"; helpTopicMenultem.setText(” 帮助主题(H"; aboutMenultem.setText(” 关于记事本(A";helpMe nu .add(helpTopicMe nultem; helpMe nu .addSeparator(;helpMe nu .add(aboutMe nultem; //定义文件菜单下的事件监听n ewMe nultem.addActio nListe ner(new n ewMe nultem_actio nAdapter(this; ope nMen ultem.addActio nListe ner(new ope nMen ultem_actio nAdapter(this; saveMenultem.addActio nListe ner(new saveMe nultem_actio nAdapter(this; saveAsMe nultem.addActio nListe ner(new saveAsMe nultem_actio nAdapter(this; pageSetupMe nultem.addActio nListe ner(new pageSetupMe nultem_actio nAdapter(this; prin tMe nultem.addActi on Liste ner(n ew prin tMe nultem_actio nAdapter(this;exitMenultem.addActionListener(new exitMenultem_actionAdapter(this; // 定义风格菜单下的事件监听javaStyleMenultem.addActionListener(newjavaStyleMenultem_actionAdapter(this; metalStyleMenultem.addActionListener(new metalStyleMe nultem_actio nAdapter(this;wi ndowsStyleMe nultem.addActio nListe ner(newwi ndowsStyleMe nultem_actio nAdapter(this; // 定义帮助菜单下的事件监听helpTopicMe nultem.addActio nListe ner(new helpTopicMe nultem_actio nAdapter(this; aboutMe nultem.addActio nListe ner(new aboutMe nultem_actio nAdapter(this; 〃填加菜单至U菜单栏menuBar.add(fileMenu; menuBar.add(styleMenu; menuBar.add(helpMenu; // 对主窗口的一些设置this.setDefaultCloseOperation(EXIT_ON_CLOSE; this.setTitle(" 纪生的记事本";this.setSize(640,480; setJMenuBar(menuBar; pane.setLayout(bord;pane.add("Center",scroll; setContentPane(pane; } /定义新建菜单项方法public void newMe nultemActio nPeformed(Actio nEve nt evt{ file = nu II;if(!("".equals(co nten t.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptio nPan e.showOptio nDialog( null, "\u6587\u4ef6 "+getTitIe(+"\u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6 \u5417\uff1f", "\u8bb0\u4e8b\u672c", JOptio nPan e.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]; switch(s{ case 0: int returnVal=filechooser.showSaveDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION { file=filechooser.getSelectedFile(; try{ FileWriterfw=new FileWriter(file; fw.write(co nten t.getText(;setTitle(filechooser.getSelectedFile(.getName(+" - \u8bb0\u4e8b\u672c"; fw.close(; } catch(Excepti on e{ e.pri ntStackTrace(; } break; } case 1: conten t.setText(""; setTitle("无标题-\u8bb0\u4e8b\u672c"; } } } // 定义打开菜单项方法public voidope nMen ultemActio nPeformed(Actio nEve nt evt{ try { file = n ull; int returnVal = filechooser.showOpenDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION{ file = filechooser.getSelectedFile(; FileReader fr = new FileReader(file; int len = (in tfile .len gth(; char[] buffer = new char[le n]; fr.read(buffer,0,le n; fr.close(; conten t.setText (newString(buffer; } } catch(Exception e{ e.printStackTrace(; } } // 定义退出菜单项方法public void exitMe nultem_actio nPeformed(Actio nEve nte{ if(!("".equals(co nte nt.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptionPane.showOptionDialog(null,"文件的文字已经改变。
使用记事本编写java程序进行自我介绍
使用记事本编写java程序进行自我介绍下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!使用记事本编写java程序进行自我介绍是每一个Java程序员在学习和工作中都会经历的过程。
java记事本源代码
JMenuItem m13=new JMenuItem("另保存为 ");
m13.addActionListener(this);
JMenuItem m14=new JMenuItem("退出 ");
m14.addActionListener(this);
{
myfr fr=new myfr("JAVA记事本");
fr.setSize(560,395);
}
}
///////////////////////////myfr主窗体类//////////////////////////////////////
class myfr extends JFrame implements ActionListener
JTextArea txt1; //主输入文本区
File newfiles;
JPopupMenu popm; //弹出菜单声明
//JMenu m1,m2,m3,m4,m5,m6; //各菜单项
JMenu m1, m2, m3;
JMenuItem m26,m271,m34,p_copy,p_cut,p_paste,p_del;
replb.addActionListener(this);
mainpane=(JPanel)this.getContentPane();
mainpane.setLayout(new BorderLayout());
txt1=new JTextArea("",13,61);
m21.setAccelerator(keycopy);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java 编写的简单记事本
目录结构:
下面是 NotepadGUI.java 中的代码
import java.awt.BorderLayout; import ponent; import java.awt.Dimension; import java.awt.Event; import java.awt.FlowLayout; import java.awt.Font; import java.awt.GraphicsEnvironment; import java.awt.GridLayout; import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Stack; import java.util.regex.Matcher; import java.util.regex.Pattern;
public class NotepadGUI implements ActionListener, MouseMotionListener,
PopupMenuListener, CaretListener, UndoableEditListener { // JFrame 主框架 private ImageIcon icon = null;// 主窗体图标 private JFrame mainFrame = null;// 主窗体 private JMenuBar menuBar = null;// 菜单栏 private JPanel mainPane = null;// 面板 private JTextArea textArea = null;// 文本域 private int maxRows = 25;// 文本域最大行数 private int maxColumns = 60;// 文本域最大列数 private JLabel state = null;// 状态栏:显示光标所在行数、列数 private JScrollPane scrollPane = null;// 滚动条 private JPopupMenu popupMenu; // 右键单击事件列表 private JFileChooser choose = null; // 文件对话框 private UndoManager undoManager;// 撤销管理类 private JDialog findDialog = null;// 查找对话框 private JDialog repalceDialog = null;// 替换对话框 private JDialog fontDialog = null;// 字体对话框 // 查找对话框组件
private JTextField fontKindTextField = null;// "字体"对话框"字体"input private JTextField font StyleTextField = null;// "字体"对话框"字形"input private JTextField font SizeTextField = null;// "字体"对话框"大小"input private JButton fontConfirmButton = null;// "字体"对话框"确定"按钮 private JComboBox fontKindComboBox = null;// "字体"对话框"字体"下拉列表 private JComboBox fontStyleComboBox = null;// "字体"对话框"字形"下拉列表 private JComboBox fontSizeComboBox = null;// "字体"对话框"大小"下拉列表 private JButton fontCancleButton = null;// "字体"对话框"取消"按钮 private JLabel fontNothingSecond = null;// "字体"对话框第四行占位组件 private JTextField fontExample = null;// "字体"对话框"实例"文本域 private JLabel fontNothingThrid = null;// "字体"对话框第四行占位组件
// 字体对话框组件 private String[] fontKind = null; private String[] fontStyle = { "PLAIN", "BOLD", "ITALIC" };// 常规、粗体、斜体 private String[] font Size = { "8", "10", "12", "14", "16"Байду номын сангаас "18", "20", "22", "24", "26", "28", "32", "36", "48", "72", "96" }; private String currentFontKind = "隶书"; private String currentFontStyel = "0"; private String currentFontSize = "20"; private JLabel fontKindLabel = null;// 字体 F private JLabel fontStyleLabel = null;// 字形 Y private JLabel fontSizeLabel = null;// 大小 S private JLabel fontNothingFirst = null;// "字体"对话框第一行占位组件
KeyListener,
private JLabel findTargetLabel = null;// 查找内容标签 private JTextField targetTextField = null;// 输入查找目标的 input private JButton findButton = null;// 查找按钮 private JCheckBox ignoreCaseCheckBox = null;// 区分大小写 private JPanel directionPanel = null;// 方向面板 private JRadioButton upRadioButton = null;// 向上单选按钮 private JRadioButton downRadioButton = null;// 向下单选按钮 private JButton cancleFindButton = null;// 取消按钮 private int startPosition = 0;// 查找开始时光标的位置 private int currentPosition = 0;// 查找当前光标的位置 private boolean isDownCase = true;// 是否默认向下 private boolean isIgnoreCase = true;// 是否区分大小写,默认不区分 true private Stack<Integer> matcherStack = null;// "向上"查找时用于储存匹配项开始索引的栈