Java记事本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能:实现了记事本的基本功能,动态界面,文件流,打开文件,修改文件,保存文件,另存为,自定义文件名和格式。本来想实现与数据库连接,但是要实现跨面板调用,不是一件简单的事,所以搁浅了,另外,关于字体的优化类就交给有兴趣的同学们了。
在Eclipse中的结构图如下:
图1
部分运行效果图:
图2
图3
以上图1的类中,有一些是不必要的,是我在制作过程中的测试类,所以在这里只把必要的类附上,运行绝对没有问题:
com.yangcong.extra包:
1.OperateJPanel.java
package com.yangcong.extra;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.*;
import com.yangcong.tools.*;
public class OperateJPanel extends JPanel implements ActionListener,KeyListener
{
public Boolean flag=false;//用以判断是否显示第三个面板
String diaryName;
String diaryDirectory;
int riJiNum;
BackTool backTool;
Color myColor;
JTextArea myPad;
JScrollPane jScrollPane;
JToolBar gongJuTiao;
JButton gongJu1,gongJu2,gongJu3,gongJu4;
/*JMenuBar caiDanTiao;
JMenu caiDan1;
JMenuItem caiDanXianga;*/
BorderLayout borderLayout;
JFileChooser jFileChooser;
File duFile=null,xieFile=null;
InputStreamReader du=null;
OutputStreamWriter xie=null;
public OperateJPanel()
{
//手型光标
Cursor myCursor=new CursorMouse().CursorMouse();
borderLayout=new BorderLayout();
this.setLayout(borderLayout);
/*
caiDanTiao=new JMenuBar();//菜单条
caiDan1=new JMenu("文件");
caiDanXianga=new JMenuItem("打开", new ImageIcon("images/open.png"));
caiDan1.add(caiDanXianga);
caiDanTiao.add(caiDan1);
//this.add(caiDanTiao);
*/
gongJuTiao=new JToolBar();//工具条
gongJu1=new JButton("打开", new ImageIcon("images/open.png"));
gongJu1.setCursor(myCursor);
gongJu1.addActionListener(this);
gongJu2=new JButton("保存", new ImageIcon("images/save.png"));
gongJu2.setCursor(myCursor);
gongJu2.addActionListener(this);
gongJu3=new JButton("返回", new ImageIcon("images/return.png"));
gongJu3.setCursor(myCursor);
gongJu3.addActionListener(this);
/*
* gongJu4=new JButton("列表", new ImageIcon("images/list.png"));
gongJu4.setCursor(myCursor);
gongJu4.addActionListener(this);
*/
gongJuTiao.add(gongJu1);
gongJuTiao.add(gongJu2);
gongJuTiao.add(gongJu3);
//gongJuTiao.add(gongJu4);
this.add(gongJuTiao,borderLayout.NORTH);
myPad=new JTextArea(24,60);//25,60
myPad.setLineWrap(true);//设置自动换行
myPad.addKeyListener(this);//当文字发生改变的时候,保存按钮又可以使用了
jScrollPane=new JScrollPane(myPad);//用滚动条将文本区域圈起来
this.add(jScrollPane,borderLayout.SOUTH);
myColor=new Color(244,214,164);//设置背景颜色
this.setBackground(myColor);
}
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
if(e.getSource()==gongJu1)
{
myPad.setText(null);
jFileChooser=new JFileChooser();
//jFileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
//jFileChooser.showDialog(null,"打开文件");
jFileChooser.showOpenDialog(null);
try
{
if(jFileChooser.getSelectedFile()!=null)
{
duFile=jFileChooser.getSelectedFile();
du=new InputStreamReader(new FileInputStream(duFile),"UTF-8");//解决乱码
//FileReader du=new FileReader(duFile);//建立通道
/*
RandomAccessFile du=new RandomAccessFile(duFile, "rw");
long filePoint=0;
long fileLength=du.length();
while(filePoint { String string=du.readLine(); myPad.append(string+"\r\n"); filePoint=du.getFilePointer(); } du.close();