- 浏览: 143425 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (129)
- framework (18)
- Java (25)
- web2.0 (7)
- Oracle (23)
- 框架师 (20)
- design pattern (5)
- j2ee (6)
- 日常问题收集 (51)
- linux (12)
- Oralce优化 (4)
- life (3)
- sqlplus (1)
- sql (2)
- C# (4)
- mysql (9)
- 拿来主义 (12)
- 标签 (0)
- ThinkPHP (1)
- python (1)
- mybatis (2)
- html5 (1)
- jquery (2)
- hadoop (3)
- git (1)
- struts2 (1)
- shiro (1)
- struts (1)
最新评论
-
xiao88xian:
...
jQuery常用经典技巧
第一个类:
第二个类:
当然还有个properties文件
package notepad; import java.awt.Dimension; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; /** * 用于存储记事本尺寸大小的类 只是利用了文件的读写操作 对properties文件的操作 * */ public class NotePadSize { private File file; private Properties p; String w, h; public NotePadSize() { w = new String(); h = new String(); w = "400"; h = "400"; file = new File("G:\\3.6\\5.1\\src\\notepad\\size.properties"); p = new Properties(); } /** * 从本地文件中读取上次的记事本的长宽 * * @throws IOException * */ protected void ReadSize() throws IOException { FileInputStream reader; reader = new FileInputStream(file); p.load(reader); // 读取长宽 this.w = p.getProperty("width"); this.h = p.getProperty("height"); reader.close(); } /** * 存储记事本的长宽 * * @throws IOException * */ protected void SaveSize() throws IOException { FileOutputStream save; save = new FileOutputStream(file); p.setProperty("width", w); p.setProperty("height", h); p.store(save, ""); save.close(); } /** * 获取长宽 * * @throws IOException * */ public Dimension getSize() throws IOException { ReadSize(); Dimension size = new Dimension(Integer.parseInt(this.w), Integer.parseInt(this.h)); return size; } /** * 设置长宽,并保存 * * @throws IOException * */ public void setSize(Dimension Size) throws IOException { this.w = String.valueOf(Size.width); this.h = String.valueOf(Size.height); SaveSize(); } }
第二个类:
package notepad; import java.awt.Dimension; import java.awt.FileDialog; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; 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; /** * 记事本beta 1.1.0版本 最新功能:实现了记事本的尺寸记录功能 * */ @SuppressWarnings("serial") public class NotePad extends JFrame implements WindowListener { private JScrollPane txtJs; private JTextArea txtArea; private JMenuBar jm; private JMenu file, edit, format, help; private JMenuItem file_new, file_open, file_save, exit; private JMenuItem edit_cut, edit_copy, edit_paste, edit_find, edit_selectAll; private JCheckBoxMenuItem format_wrap; private JMenuItem help_issue; private JPopupMenu jpm; private JMenuItem jp_cut, jp_copy, jp_paste, jp_selectAll; private FileDialog openFileDialog, saveFileDialog; private NotePadSize size; private Dimension NotePadDimension; public NotePad() throws IOException { super("NotePad"); jm = new JMenuBar(); file = new JMenu("文件(F)"); edit = new JMenu("编辑(E)"); format = new JMenu("格式(O)"); help = new JMenu("帮助(H)"); // 文件菜单的实例化 file_new = new JMenuItem("新建(N)"); file_open = new JMenuItem("打开(O)"); file_save = new JMenuItem("保存(S)"); exit = new JMenuItem("退出(X)"); file.add(file_new); file.add(file_open); file.add(file_save); file.addSeparator(); file.add(exit); // 编辑菜单的实例化 edit_cut = new JMenuItem("剪切"); edit_copy = new JMenuItem("复制"); edit_paste = new JMenuItem("粘贴"); edit_find = new JMenuItem("查找"); edit_selectAll = new JMenuItem("全选"); edit.add(edit_cut); edit.add(edit_copy); edit.add(edit_paste); edit.addSeparator(); edit.add(edit_find); edit.addSeparator(); edit.add(edit_selectAll); // 格式菜单的实例化 format_wrap = new JCheckBoxMenuItem("自动换行"); format.add(format_wrap); // 帮助菜单的实例化 help_issue = new JMenuItem("关于记事本"); help.add(help_issue); // 添加添加右键弹出式菜单 jpm = new JPopupMenu(); jp_cut = new JMenuItem("剪切"); jp_copy = new JMenuItem("复制"); jp_paste = new JMenuItem("粘贴"); jp_selectAll = new JMenuItem("全选"); jpm.add(jp_cut); jpm.add(jp_copy); jpm.add(jp_paste); jpm.addSeparator(); jpm.add(jp_selectAll); // 注册组件监听 file_new.addActionListener(new NotePadActionListener()); file_open.addActionListener(new NotePadActionListener()); file_save.addActionListener(new NotePadActionListener()); exit.addActionListener(new NotePadActionListener()); edit_cut.addActionListener(new NotePadActionListener()); edit_copy.addActionListener(new NotePadActionListener()); edit_paste.addActionListener(new NotePadActionListener()); edit_find.addActionListener(new NotePadActionListener()); edit_selectAll.addActionListener(new NotePadActionListener()); format_wrap.addActionListener(new NotePadActionListener()); help_issue.addActionListener(new NotePadActionListener()); jp_cut.addActionListener(new NotePadActionListener()); jp_copy.addActionListener(new NotePadActionListener()); jp_paste.addActionListener(new NotePadActionListener()); jp_selectAll.addActionListener(new NotePadActionListener()); // 实例化对话框 openFileDialog = new FileDialog(this, "打开文件", FileDialog.LOAD); saveFileDialog = new FileDialog(this, "保存文件", FileDialog.SAVE); jm.add(file); jm.add(edit); jm.add(format); jm.add(help); setJMenuBar(jm); txtArea = new JTextArea(); // 使用匿名内部内,为textArea添加鼠标监听 txtArea.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON3) { jpm.show(e.getComponent(), e.getX(), e.getY()); } } }); txtJs = new JScrollPane(txtArea); add(txtJs); size = new NotePadSize(); // 添加窗口事件,记录窗口的大小尺寸 addWindowListener(this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); NotePadDimension = new Dimension(size.getSize()); setSize(NotePadDimension); // 让窗体居中显示 setLocation(getToolkit().getScreenSize().width / 2 - NotePadDimension.width / 2, getToolkit().getScreenSize().height / 2 - NotePadDimension.height / 2); setVisible(true); } // ///////Main method//////////// public static void main(String[] args) throws IOException { new NotePad(); } // /////内部类,用于处理事件////////// class NotePadActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { Object o = e.getSource(); if (o == file_new) { // 新建文件 txtArea.setText(""); } if (o == file_open) {// 打开文件 openFileDialog.setVisible(true); String name = openFileDialog.getDirectory() + openFileDialog.getFile(); OpenFile(name); } if (o == file_save) {// 保存文件 saveFileDialog.setVisible(true); String name = saveFileDialog.getDirectory() + saveFileDialog.getFile(); SaveFile(name); } if (o == exit) {// 退出 System.exit(0); } if (o == help_issue) {// 帮助 JOptionPane.showMessageDialog(txtArea, "关于记事本:\n仅供学习参考 NotePad Beta 1.1"); } // //////////编辑事件///////////// if (o == edit_cut || o == jp_cut) { txtArea.cut(); } if (o == edit_copy || o == jp_copy) { txtArea.copy(); } if (o == edit_paste || o == jp_paste) { txtArea.paste(); } if (o == edit_selectAll || o == jp_selectAll) { txtArea.selectAll(); } // ///////////end edit event//////////// if (o == edit_find) { // 从输入对话框中获取需要查询的内容 String findStr = JOptionPane.showInputDialog(txtArea, "输入查询的内容", "查找", JOptionPane.QUESTION_MESSAGE); Find(findStr); } if (o == format_wrap) {// 自动换行 if (format_wrap.isSelected()) { txtArea.setLineWrap(true); } else txtArea.setLineWrap(false); } } public void Find(String s) { int x; String txt = txtArea.getText(); x = txt.indexOf(s); if (x != -1) txtArea.select(x, x + s.length()); else JOptionPane.showMessageDialog(txtArea, "查找失败", "没有找到", JOptionPane.WARNING_MESSAGE); } public void OpenFile(String fileName) {// 读取文件 使用了reader方法 File file = new File(fileName); try { FileReader reader = new FileReader(file); BufferedReader br = new BufferedReader(reader); String s = new String(); try { while ((s = br.readLine()) != null) { txtArea.append(s + "\n"); } br.close(); reader.close(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } } // 保存文件 public void SaveFile(String fileName) { File file = new File(fileName); try { FileWriter save = new FileWriter(file); save.write(txtArea.getText()); save.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 实现WindowListenner接口,当关闭窗口的时候获取窗口大小, * 然后调用NotePadSize类的setSize方法用properties文件保存最后尺寸 * */ public void windowClosing(WindowEvent e) { NotePadDimension = this.getSize(); try { size.setSize(NotePadDimension); } catch (IOException e1) { e1.printStackTrace(); } } public void windowOpened(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public void windowActivated(WindowEvent e) { } public void windowDeactivated(WindowEvent e) { } }
当然还有个properties文件
# #Tue May 03 21:01:46 CST 2011 height=311 width=317
发表评论
-
使用OSCache实现页面的缓存,优化性能
2013-07-10 14:21 1048使用OSCache实现页面的缓存,优化性能 OSC ... -
BigDecimal不整除的一个异常java.lang.ArithmeticException: Non-terminating decimal expansi
2013-03-26 10:34 1586金额的数据类型是BigDec ... -
解决subclipse报错:svn: Can't open file 'D:\project\Xxx.java.svn-base': 系统找不到指定的文件
2013-03-23 16:49 1953环境为:XP, eclipse, subclipse。 我想 ... -
hibernate4+spring3.1整合常见问题解决方法
2013-03-21 19:21 808由于目前网上很少有关于hibernate4+spring3. ... -
JAVA String.format 方法使用介绍(生成序列号的时候很有用哦)
2013-03-21 10:39 1279JAVA String.format 方法使 ... -
Ant-Ivy使用
2013-02-21 12:27 1068转至:http://blog.csdn.net/leon70 ... -
Java时间处理
2013-01-17 17:33 7961.获得当前系统时间 首先System ... -
no jacob in java.library.path错误的解决
2013-01-15 11:25 958一般把jacob.dll(不同版本的jacob的dll文件名 ... -
java合并几个图片
2013-01-08 15:39 872package com.anduo.web; im ... -
JDK 1.6 API 中英文版 在线版、下载地址
2013-01-05 10:38 1367JDK 1.6 API(全) * HTML 格式(在线英 ... -
JAVA String.format方法使用介绍
2013-01-04 12:28 827转至:http://soft.chinab ... -
java中byte数组与int,long,short间的转换
2012-12-26 14:07 943开发问题收集 package com.util; ... -
通过知道的class文件得到该文件所在的jar包
2012-09-18 14:23 748String path = XXX.class.getP ... -
利用java内置库的HashMap统计字符串中单词出现的个数问题
2011-05-14 20:16 684没什么好说的,我就直接把代码放上面吧: package co ... -
classpath、path、JAVA_HOME的作用
2011-11-05 14:13 948CLASSPATH是什么? ... -
JAVA基础巩固加强 enhance day1
2011-11-07 18:52 920最近忙着找工作,可是总是到最后面试完了就没信儿了。哎,你说找个 ... -
JAVA基础巩固加强 enhance day1反射 reflect
2011-11-07 20:58 844以前一直只知道有reflect ... -
如何用jdbc连接数据库 java连接数据库的五步
2011-06-09 22:18 1459用JDBC连接数据库 本文用sqlserver2000 ... -
Java 完全面向对象的贪吃蛇游戏
2011-05-09 10:08 1044JavaSE的项目:贪吃蛇( ... -
利用java内置库的HashMap统计字符串中单词出现的个数问题
2011-05-14 20:16 2533没什么好说的,我就直接把代码放上面吧: package c ...
相关推荐
通过以上知识点的学习和实践,你可以创建一个基本的Java记事本程序。这个过程将帮助你深入理解Java GUI编程,并为更复杂的桌面应用开发打下基础。记得在编写代码时,保持良好的编程习惯,如适当的注释、变量命名清晰...
### Java多功能记事本知识点解析 #### 一、项目概述 该项目名为“Java多功能记事本”,是一款基于Java语言开发的增强型文本编辑工具。相较于传统简易记事本,此应用具备更多的实用功能,旨在为用户提供更为丰富的...
Java记事本是一款基于Java语言开发的简单文本编辑器,它提供了一个基本的文本操作环境,使得用户可以在其中进行文字的录入、修改和保存。这款记事本程序体现了Java编程语言在开发桌面应用上的能力,同时也展示了面向...
### 日历记事本Java编程知识点详解 #### 一、项目概述 ...以上是对“日历记事本Java编程”项目的深度解析,从技术架构到功能实现,再到可能的优化方向,旨在帮助开发者全面理解此类应用程序的开发流程和技术要点。
### Java记事本程序源代码解析 #### 一、概览 给定的代码段是用Java语言编写的简易记事本程序的一部分。这个程序利用了AWT(Abstract Window Toolkit)组件来构建用户界面,提供了基本的文件操作功能,如打开、保存...
在这个项目中,我们的目标是设计并实现一个简单的Java记事本程序,提供基本的文字编辑功能,如新建、打开、保存、复制、粘贴、剪切、撤销、重做等。通过这个项目,学生可以深入理解Java Swing库在图形用户界面(GUI...
【Java课程设计报告:记事本程序开发】 在本次Java课程设计中,学生们被要求开发一个简单的记事本应用程序,以此来巩固和实践所学的Java编程知识。这份报告详细记录了开发过程,包括背景、设计思路、系统需求分析...
同时,还设置了JFrame的大小、关闭操作(默认为退出程序)以及可见性。 事件处理是通过`event()`函数完成的,这里使用了`ActionListener`接口来监听MenuItem的点击事件。当用户点击"打开"(openItem)或"保存"...
JAVA实训作品 这是一个界面简单的java记事本,界面友好,能快捷简单地进行操作,可即时记录身边的事,可把它当做标签使用,充分用到日常生活工作中的记事,方便、简洁。可进行文件的打开、保存、另存为和关闭;可...
总结,本报告详细记录了基于Java语言的简单记事本程序的设计过程,从需求分析到详细设计,再到测试优化,每个阶段都遵循了良好的软件工程实践,旨在提升学生的编程技能和软件开发能力。通过这样的课程设计,学生可以...
通过以上步骤,我们可以实现一个基础的Java记事本程序,提供基本的文本编辑功能,同时也加深了对Java GUI编程的理解。在实际开发中,还可以进一步完善,比如增加撤销/重做功能,支持多种格式的文件,或者提供更复杂...
Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...
通过以上知识点,我们可以看到这个Java记事本实现了基本的文字编辑功能,包括新建、打开、保存文件,以及文本的剪切、复制、粘贴、查找和替换。此外,它还提供了字体设置和自动换行选项。这个程序是一个很好的学习...
书名:《Java开发实战1200例(第I卷)》(清华大学出版社.李钟尉,陈丹丹) PDF格式扫描版,全书分为24章,共817页。2011年1月出版。 全书压缩打包成4部分,这是第3部分 注:本系列图书的第I、II卷再版时均相应改名为...
通过Java代码或XML布局,设置控件样式,如字体、颜色和大小,以符合应用的视觉设计。 3.3 核心技术 - `ContentResolver`:用于与系统日历提供者进行交互,获取和修改日历数据。 - `AlarmManager`:如果需要,可以...
2. ResultSet 接口是Java数据库连接(JDBC)的一部分,提供了遍历数据库查询结果集的方法,如next()用于移动到下一个结果,close()用于关闭结果集。 3. 互联网服务提供商(ISP)是指提供互联网接入服务的公司,如...