JAVA记事本源代码(雏形)

原创 2007年10月11日 22:46:00

 

//目前实现了可以将文本内容读入到文本区并显示的功能
//2007-10-11实现了保存文件的功能
//问题一:需要解决当改变框架大小时,PANLE及时刷新的问题.
//问题二:没有实现当打开文件时,记事本的标题改变为文件名称的功能.
package Notepad_new;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.io.*;

public class NotePad ...{
    
public static void main(String args[]) ...{

        JFrame frame 
= new NoteFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(
true);
    }

}


class NoteFrame extends JFrame ...{

    
public NoteFrame() ...{// 在frame中不指定框架大小,因为是用NotePanel对象填充的.
        this.setLocation(200200);
        setTitle(title);
        Container c 
= getContentPane();
        p 
= new TextPanel();
        area 
= p.area;
        JScrollPane scroll 
= new JScrollPane(area);
        p.add(scroll);
// 当文本内容超过文本区显示范围时,为文本区增加滚动条.
        add(p);

        JMenuBar menubar 
= new JMenuBar();
        
this.setJMenuBar(menubar);
        
// 增加"文件"菜单
        JMenu fileMenu = new JMenu("文件");
        JMenuItem openItem 
= new JMenuItem("打开");
        openItem.addActionListener(
new ActionListener() ...{
            
public void actionPerformed(ActionEvent e) ...{
                JFileChooser chooser 
= new JFileChooser();
                chooser.setCurrentDirectory(
new File("."));
                chooser.showOpenDialog(NoteFrame.
this);
                filePath 
= chooser.getSelectedFile().getPath();

                
try ...{
                    File f 
= new File(filePath);
                    BufferedInputStream in 
= new BufferedInputStream(
                            
new FileInputStream(f));
                    
int n = in.available();
                    
byte[] b = new byte[n];
                    in.read(b, 
0, n);
                    
// in.close();
                    fileText = new String(b);
                    area.setText(fileText);

                }
 catch (IOException e1) ...{
                    System.out.println(e.toString());
                }

            }

        }
);
        fileMenu.add(openItem);
        
// 添加保存功能
        JMenuItem saveItem = new JMenuItem("保存");
        saveItem.addActionListener(
new ActionListener() ...{// 处理保存事件
                    public void actionPerformed(ActionEvent e) ...{
                        JFileChooser chooser 
= new JFileChooser();// 创建一个jFileChooser的实例
                        chooser.setCurrentDirectory(new File("."));// 设定默认目录为当前目录
                        chooser.showSaveDialog(NoteFrame.this);// 显示保存文件对话框
                        String filePath = chooser.getSelectedFile().getPath();// 获取输入的文件名
                        try ...{
                            FileWriter out 
= new FileWriter(new File(filePath));
                            System.out.println(area.getText());
                            out.write(area.getText());
                            out.flush();
                        }
 catch (IOException e1) ...{
                            System.out.println(e1.toString());
                        }

                    }

                }
);
        fileMenu.add(saveItem);
        
// 增加退出功能
        JMenuItem exitItem = new JMenuItem("退出");
        exitItem.addActionListener(
new ActionListener() ...{
            
public void actionPerformed(ActionEvent e) ...{
                System.exit(
0);
            }

        }
);
        fileMenu.add(exitItem);

        
// 增加"帮助"菜单
        JMenu helpMenu = new JMenu("帮助");
        JMenuItem aboutItem 
= new JMenuItem("关于");
        aboutItem.addActionListener(
new ActionListener() ...{
            
public void actionPerformed(ActionEvent e) ...{
                JOptionPane.showMessageDialog(
null"小马菜菜倾情制作 2007-10-11");
            }

        }
);
        helpMenu.add(aboutItem);

        menubar.add(fileMenu);
// 将文件菜单添加到菜单栏
        menubar.add(helpMenu);// 将帮助菜单添加到菜单栏
        pack();// 使用该语句,使panel的大小与frame相适应
        area.setText(fileText);
    }


    
public static String fileText, filePath;

    
public static JTextArea area;

    
public static String title;

    
public static TextPanel p;
}


class TextPanel extends JPanel ...{
    
public TextPanel() ...{
        setSize(
600800);
        area 
= new JTextArea(2040);
        BorderLayout layout 
= new BorderLayout();
        
this.setLayout(layout);
        add(area, layout.CENTER);
    }


    
public static JTextArea area;

    
public static String title;
}

Java图形界面开发—简易记事本

简易记事本小练习
  • qq_25827845
  • qq_25827845
  • 2016年05月18日 20:41
  • 3791

Java实战_手把手编写记事本

Java运用SWT插件编写桌面记事本应用程序可实现windows系统桌面记事本基本功能,傻瓜式教学,一步一步手把手操作。小白也可自己编写出完整的应用程序。 需要工具:Eclipse(带SWT插件) ...
  • chance2015
  • chance2015
  • 2016年01月14日 13:03
  • 22926

java学习之用记事本写简单的HelloWorld程序

//public :表示这个类是公共的,一个java文件中只能有一个public类 //class:表示这是一个类 //HelloWorld:类名(公共类的类名必须和文件名一致) public cla...
  • geekday
  • geekday
  • 2014年07月09日 21:28
  • 1857

java 版电子表格雏形源代码

  • 2008年11月04日 22:45
  • 730KB
  • 下载

Java仿Windows记事本源代码

先上截图: 源代码:import java.awt.*; import javax.swing.*; import javax.swing.filechooser.FileNameExt...
  • u010697681
  • u010697681
  • 2016年07月11日 15:43
  • 352

分享刚完成的模拟记事本的java源代码

因为大部分的内容都是摘自林老师的JDK7学习笔记的,只做了细微的修改,所以就定为转载了。 =============================JNotePad.java============...
  • krave
  • krave
  • 2014年12月20日 22:49
  • 1195

java记事本源代码

import java.awt.CheckboxMenuItem; import java.awt.Color; import java.awt.Container; import java.awt....
  • BloodyDmusic
  • BloodyDmusic
  • 2016年07月27日 19:39
  • 5859

记事本应用程序java源代码

package aaa; /* AWT Sample application "记事本应用程序java源代码" * @author Amiry * @version 1.00 07/05/2...
  • lsy649241354
  • lsy649241354
  • 2013年06月08日 22:01
  • 784

java记事本源代码

  • 2016年02月03日 17:33
  • 23KB
  • 下载

java写的记事本源代码

  • 2017年11月19日 17:07
  • 23KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA记事本源代码(雏形)
举报原因:
原因补充:

(最多只允许输入30个字)