自编Java版记事本(基本功能实现,界面尚可)
2013-09-15 12:09
477 查看
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
public class Notbook extends JFrame {
static final long serialVersionUID=1L;
private JMenuBar mb;
private JMenu m1,m2,m3,m4,m5;
private JMenuItem m1i1,m1i2,m1i3,m1i4,m1i5,m2i1,m2i2,m2i3,m2i4,m2i5,m2i6,m2i7,m3i1,m3i2,m4i1,m5i1,m5i2;
private JTextArea ta;
private JPopupMenu jpm;
private FileDialog fd;
private FileInputStream fis;
private FileWriter fw;
private File f;
private String str;
private byte[] txt=new byte[20*1024];
private int flag=1;
Notbook(){
init();
setTitle("记事本");
setSize(640,480);
setLocation(100, 100);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
listener();
}
public void init(){
mb=new JMenuBar();
setJMenuBar(mb);
m1=new JMenu("文件");
m1.setFont(new Font("宋体",0,12));
m2=new JMenu("编辑");
m2.setFont(new Font("宋体",0,12));
m3=new JMenu("格式");
m3.setFont(new Font("宋体",0,12));
m4=new JMenu("查看");
m4.setFont(new Font("宋体",0,12));
m5=new JMenu("帮助");
m5.setFont(new Font("宋体",0,12));
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
mb.add(m5);
m1i1=new JMenuItem("新建");
m1i1.setFont(new Font("宋体",0,12));
m1i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
m1i2=new JMenuItem("打开");
m1i2.setFont(new Font("宋体",0,12));
m1i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
m1i5=new JMenuItem("保存");
m1i5.setFont(new Font("宋体",0,12));
m1i5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
m1i3=new JMenuItem("另存为");
m1i3.setFont(new Font("宋体",0,12));
m1i4=new JMenuItem("退出");
m1i4.setFont(new Font("宋体",0,12));
m1i4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK));
m2i1=new JMenuItem("撤销");
m2i1.setFont(new Font("宋体",0,12));
m2i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
m2i2=new JMenuItem("复制");
m2i2.setFont(new Font("宋体",0,12));
m2i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
m2i3=new JMenuItem("剪切");
m2i3.setFont(new Font("宋体",0,12));
m2i3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
m2i4=new JMenuItem("粘帖");
m2i4.setFont(new Font("宋体",0,12));
m2i4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
m2i5=new JMenuItem("删除");
m2i5.setFont(new Font("宋体",0,12));
m2i5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
m2i6=new JMenuItem("全选");
m2i6.setFont(new Font("宋体",0,12));
m2i6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
m2i7=new JMenuItem("时间/日期");
m2i7.setFont(new Font("宋体",0,12));
m2i7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
m3i1=new JMenuItem("自动换行");
m3i1.setFont(new Font("宋体",0,12));
m3i2=new JMenuItem("字体");
m3i2.setFont(new Font("宋体",0,12));
m3i2.setEnabled(false);
m4i1=new JMenuItem("状态栏");
m4i1.setEnabled(false);
m4i1.setFont(new Font("宋体",0,12));
m5i1=new JMenuItem("欢迎");
m5i1.setFont(new Font("宋体",0,12));
m5i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11,0));
m5i2=new JMenuItem("关于");
m5i2.setFont(new Font("宋体",0,12));
m5i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F12,0));
m1.add(m1i1);
m1.addSeparator();
m1.add(m1i2);
m1.add(m1i5);
m1.add(m1i3);
m1.addSeparator();
m1.add(m1i4);
m2.add(m2i1);
m2.addSeparator();
m2.add(m2i3);
m2.add(m2i2);
m2.add(m2i4);
m2.add(m2i5);
m2.addSeparator();
m2.add(m2i6);
m2.add(m2i7);
m3.add(m3i1);
m3.add(m3i2);
m4.add(m4i1);
m5.add(m5i1);
m5.addSeparator();
m5.add(m5i2);
jpm=m2.getPopupMenu();
ta=new JTextArea();
ta.setFont(new Font("宋体",0,20));
add(new JScrollPane(ta));
}
public void listener(){
//编辑
m2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Clipboard cl=ta.getToolkit().getSystemClipboard();
str=ta.getSelectedText();
if(str==null){
m2i2.setEnabled(false);
m2i3.setEnabled(false);
}
else{
m2i2.setEnabled(true);
m2i3.setEnabled(true);
}
boolean b=cl.isDataFlavorAvailable(DataFlavor.stringFlavor);
if(b){
m2i4.setEnabled(true);
}
}
});
//新建
m1i1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Notbook();
}
});
//打开
m1i2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
fd=new FileDialog(new JFrame(),"打开",FileDialog.LOAD);
fd.setVisible(true);
str=fd.getDirectory()+fd.getFile();
if(str!=null)
try{
fis=new FileInputStream(str);
int l=fis.read(txt,0,txt.length);
ta.setText("");
ta.insert(new String(txt,0,l),0);
fis.close();
}
catch(IOException ex){
System.out.println("File read error:"+ex);
}
}
});
//另存为
m1i3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
fd=new FileDialog(new Frame(),"另存为",FileDialog.SAVE);
fd.setVisible(true);
str=fd.getDirectory()+fd.getFile();
f=new File(str);
try{
fw=new FileWriter(f);
fw.write(ta.getText());
fw.close();
}
catch(IOException ex){
System.out.println("File save error:"+ex);
}
}
});
//退出
m1i4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
//保存
m1i5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
fd=new FileDialog(new Frame(),"保存",FileDialog.SAVE);
fd.setVisible(true);
}
});
//撤销
m2i1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
}
});
//复制
m2i4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.paste();
}
});
//粘帖
m2i2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.copy();
}
});
//剪切
m2i3.addActionListe
99c7
ner(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.cut();
}
});
//删除
m2i5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.replaceRange("",ta.getSelectionStart(),ta.getSelectionEnd());
}
});
//全选
m2i6.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.selectAll();
}
});
//时间日期
m2i7.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.append(new Date().toString());
}
});
//自动换行
m3i1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=-flag;
if(flag==1)
ta.setLineWrap(false);
else
ta.setLineWrap(true);
}
});
m3i2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Ziti();
}
});
//欢迎
m5i1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(new JFrame(),"Welcome to my notepad !","Welcome",JOptionPane.INFORMATION_MESSAGE);
}
});
//关于
m5i2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(new JFrame(),"新手驾到,欢迎批评","About",JOptionPane.INFORMATION_MESSAGE);
}
});
//右键弹出式菜单
ta.addMouseListener(
new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON3)
jpm.show(m2, e.getX()-30, e.getY());
}
public void mouseClicked(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1)
jpm.setVisible(false);
}
}
);
}
public static void main(String[] args) {
new Notbook();
}
}
class Ziti{
Ziti(){
JDialog jd=new JDialog(new Frame(),"字体",JDialog.DEFAULT_MODALITY_TYPE);
jd.setBounds(200,200,400,500);
jd.setResizable(false);
jd.setVisible(true);
}
}
import javax.swing.*;
import java.util.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
public class Notbook extends JFrame {
static final long serialVersionUID=1L;
private JMenuBar mb;
private JMenu m1,m2,m3,m4,m5;
private JMenuItem m1i1,m1i2,m1i3,m1i4,m1i5,m2i1,m2i2,m2i3,m2i4,m2i5,m2i6,m2i7,m3i1,m3i2,m4i1,m5i1,m5i2;
private JTextArea ta;
private JPopupMenu jpm;
private FileDialog fd;
private FileInputStream fis;
private FileWriter fw;
private File f;
private String str;
private byte[] txt=new byte[20*1024];
private int flag=1;
Notbook(){
init();
setTitle("记事本");
setSize(640,480);
setLocation(100, 100);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
listener();
}
public void init(){
mb=new JMenuBar();
setJMenuBar(mb);
m1=new JMenu("文件");
m1.setFont(new Font("宋体",0,12));
m2=new JMenu("编辑");
m2.setFont(new Font("宋体",0,12));
m3=new JMenu("格式");
m3.setFont(new Font("宋体",0,12));
m4=new JMenu("查看");
m4.setFont(new Font("宋体",0,12));
m5=new JMenu("帮助");
m5.setFont(new Font("宋体",0,12));
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
mb.add(m5);
m1i1=new JMenuItem("新建");
m1i1.setFont(new Font("宋体",0,12));
m1i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
m1i2=new JMenuItem("打开");
m1i2.setFont(new Font("宋体",0,12));
m1i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
m1i5=new JMenuItem("保存");
m1i5.setFont(new Font("宋体",0,12));
m1i5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
m1i3=new JMenuItem("另存为");
m1i3.setFont(new Font("宋体",0,12));
m1i4=new JMenuItem("退出");
m1i4.setFont(new Font("宋体",0,12));
m1i4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK));
m2i1=new JMenuItem("撤销");
m2i1.setFont(new Font("宋体",0,12));
m2i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
m2i2=new JMenuItem("复制");
m2i2.setFont(new Font("宋体",0,12));
m2i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
m2i3=new JMenuItem("剪切");
m2i3.setFont(new Font("宋体",0,12));
m2i3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
m2i4=new JMenuItem("粘帖");
m2i4.setFont(new Font("宋体",0,12));
m2i4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
m2i5=new JMenuItem("删除");
m2i5.setFont(new Font("宋体",0,12));
m2i5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
m2i6=new JMenuItem("全选");
m2i6.setFont(new Font("宋体",0,12));
m2i6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
m2i7=new JMenuItem("时间/日期");
m2i7.setFont(new Font("宋体",0,12));
m2i7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
m3i1=new JMenuItem("自动换行");
m3i1.setFont(new Font("宋体",0,12));
m3i2=new JMenuItem("字体");
m3i2.setFont(new Font("宋体",0,12));
m3i2.setEnabled(false);
m4i1=new JMenuItem("状态栏");
m4i1.setEnabled(false);
m4i1.setFont(new Font("宋体",0,12));
m5i1=new JMenuItem("欢迎");
m5i1.setFont(new Font("宋体",0,12));
m5i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11,0));
m5i2=new JMenuItem("关于");
m5i2.setFont(new Font("宋体",0,12));
m5i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F12,0));
m1.add(m1i1);
m1.addSeparator();
m1.add(m1i2);
m1.add(m1i5);
m1.add(m1i3);
m1.addSeparator();
m1.add(m1i4);
m2.add(m2i1);
m2.addSeparator();
m2.add(m2i3);
m2.add(m2i2);
m2.add(m2i4);
m2.add(m2i5);
m2.addSeparator();
m2.add(m2i6);
m2.add(m2i7);
m3.add(m3i1);
m3.add(m3i2);
m4.add(m4i1);
m5.add(m5i1);
m5.addSeparator();
m5.add(m5i2);
jpm=m2.getPopupMenu();
ta=new JTextArea();
ta.setFont(new Font("宋体",0,20));
add(new JScrollPane(ta));
}
public void listener(){
//编辑
m2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Clipboard cl=ta.getToolkit().getSystemClipboard();
str=ta.getSelectedText();
if(str==null){
m2i2.setEnabled(false);
m2i3.setEnabled(false);
}
else{
m2i2.setEnabled(true);
m2i3.setEnabled(true);
}
boolean b=cl.isDataFlavorAvailable(DataFlavor.stringFlavor);
if(b){
m2i4.setEnabled(true);
}
}
});
//新建
m1i1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Notbook();
}
});
//打开
m1i2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
fd=new FileDialog(new JFrame(),"打开",FileDialog.LOAD);
fd.setVisible(true);
str=fd.getDirectory()+fd.getFile();
if(str!=null)
try{
fis=new FileInputStream(str);
int l=fis.read(txt,0,txt.length);
ta.setText("");
ta.insert(new String(txt,0,l),0);
fis.close();
}
catch(IOException ex){
System.out.println("File read error:"+ex);
}
}
});
//另存为
m1i3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
fd=new FileDialog(new Frame(),"另存为",FileDialog.SAVE);
fd.setVisible(true);
str=fd.getDirectory()+fd.getFile();
f=new File(str);
try{
fw=new FileWriter(f);
fw.write(ta.getText());
fw.close();
}
catch(IOException ex){
System.out.println("File save error:"+ex);
}
}
});
//退出
m1i4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
//保存
m1i5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
fd=new FileDialog(new Frame(),"保存",FileDialog.SAVE);
fd.setVisible(true);
}
});
//撤销
m2i1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
}
});
//复制
m2i4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.paste();
}
});
//粘帖
m2i2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.copy();
}
});
//剪切
m2i3.addActionListe
99c7
ner(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.cut();
}
});
//删除
m2i5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.replaceRange("",ta.getSelectionStart(),ta.getSelectionEnd());
}
});
//全选
m2i6.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.selectAll();
}
});
//时间日期
m2i7.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.append(new Date().toString());
}
});
//自动换行
m3i1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=-flag;
if(flag==1)
ta.setLineWrap(false);
else
ta.setLineWrap(true);
}
});
m3i2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Ziti();
}
});
//欢迎
m5i1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(new JFrame(),"Welcome to my notepad !","Welcome",JOptionPane.INFORMATION_MESSAGE);
}
});
//关于
m5i2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(new JFrame(),"新手驾到,欢迎批评","About",JOptionPane.INFORMATION_MESSAGE);
}
});
//右键弹出式菜单
ta.addMouseListener(
new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON3)
jpm.show(m2, e.getX()-30, e.getY());
}
public void mouseClicked(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1)
jpm.setVisible(false);
}
}
);
}
public static void main(String[] args) {
new Notbook();
}
}
class Ziti{
Ziti(){
JDialog jd=new JDialog(new Frame(),"字体",JDialog.DEFAULT_MODALITY_TYPE);
jd.setBounds(200,200,400,500);
jd.setResizable(false);
jd.setVisible(true);
}
}
相关文章推荐
- 【java学习记录】10.实现基本的记事本功能(新建、打开、另存为)和简单的加解密功能
- JAVA 画图板实现(基本画图功能+界面UI)一、界面实现
- java实现记事本基本功能:新建、打开、保存、另存为、退出、替换、全部替换、复制、剪切、粘贴、全选、获取当前时间日期、修改字体、颜色、自动换行等
- JAVA 画图板实现(基本画图功能+界面UI)二、功能实现及重绘实现
- RabbitMQ基本功能测试用例(Java实现)
- HashMap存取效率高原因、ArrayList和LinkedList区别、JAVA实现链表的基本功能
- 我的记事本 第二讲:基本功能的实现
- fairyGUI界面控件的基本制作和功能实现
- C++实现类似JAVA反射的基本功能
- java-简单的文件打开,保存,编辑功能的记事本实现
- java swing 基本实现QQ截屏功能,很简陋但有学习价值
- NoteBook Java实现记事本功能
- Java实现单向链表的基本功能详解
- java学习之io编程(记事本功能实现)
- javaweb基本的分页功能实现
- Java - - 数组实现栈基本功能
- java--实现二叉树的一些基本功能
- JS和Java实现链表类的基本功能
- Java实现单向链表基本功能
- 用java代码写的简易计算器(可以实现基本的加减乘除功能)