📄 notebook.java
字号:
import java.io.*; //引入各类包
import java.io.File;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import javax.swing.filechooser.FileFilter;
import java.util.*;
import java.applet.*;
import java.net.*;
public class NoteBook extends JFrame implements ActionListener,Runnable{//定义含有继承和接口的类
final JTextArea ta; //定义各个变量
JScrollPane sp;
JButton openBtn;
JButton saveBtn;
final JFileChooser fc;
JOptionPane alarmPane,musicPane,helpPane,wakePane;
JDialog alarmDialog,musicDialog,helpDialog,wakeDialog;
Thread t;
int h1,m1,s1,h2,m2,s2;
Calendar c;
String alarmString,hourString,minuteString,secondString,musicString;
String[] values={"标准","警车","冬之恋","猫头鹰"};
AudioClip music;
Applet ap;
URL sound;
JButton btn[];
Icon icon[];
public NoteBook(){ //构造方法
super("我的记事本");
ta=new JTextArea(20,30); //创建多行文本框
sp=new JScrollPane(ta); //创建滚动窗格
fc=new JFileChooser(); //创建存取文本的对话框
TestFileFilter filter=new TestFileFilter(); //创建一个FileFilter,此方法实现接收目录及扩展名为"txt"的文件
fc.addChoosableFileFilter(filter); //将filter对象加入存取对话框中
JMenuBar menubar=new JMenuBar(); //创建菜单条
JMenu menuFile=new JMenu("文件"); //以下创建各个菜单
JMenu menuEdit=new JMenu("编辑");
JMenu menuTool=new JMenu("工具");
JMenu menuHelp=new JMenu("帮助");
JMenuItem newItem=new JMenuItem("新建");
JMenuItem openItem=new JMenuItem("打开..."); //以下创建各个菜单项
JMenuItem saveItem=new JMenuItem("保存...");
JMenuItem quitItem=new JMenuItem("退出");
JMenuItem allItem=new JMenuItem("全选");
JMenuItem cutItem=new JMenuItem("剪切");
JMenuItem copyItem=new JMenuItem("复制");
JMenuItem pasteItem=new JMenuItem("粘贴");
JMenuItem alarmItem=new JMenuItem("闹钟");
JMenuItem calculatorItem=new JMenuItem("计算器");
JMenuItem helpItem=new JMenuItem("帮助");
menubar.add(menuFile); //以下将菜单项加入各菜单,将各菜单加入菜单条
menuFile.add(newItem);
menuFile.addSeparator();
menuFile.add(openItem);
menuFile.addSeparator();
menuFile.add(saveItem);
menuFile.addSeparator();
menuFile.add(quitItem);
menubar.add(menuEdit);
menuEdit.add(allItem);
menuEdit.addSeparator();
menuEdit.add(cutItem);
menuEdit.addSeparator();
menuEdit.add(copyItem);
menuEdit.addSeparator();
menuEdit.add(pasteItem);
menubar.add(menuTool);
menuTool.add(alarmItem);
menuTool.addSeparator();
menuTool.add(calculatorItem);
menubar.add(menuHelp);
menuHelp.add(helpItem);
newItem.setActionCommand("0"); //以下给各菜单项设置事件源及注册监听,以及键盘快捷键
newItem.setAccelerator(KeyStroke.getKeyStroke("alt N"));
newItem.addActionListener(this);
openItem.setActionCommand("1");
openItem.setAccelerator(KeyStroke.getKeyStroke("alt O"));
openItem.addActionListener(this);
saveItem.setActionCommand("2");
saveItem.setAccelerator(KeyStroke.getKeyStroke("alt S"));
saveItem.addActionListener(this);
quitItem.setActionCommand("10");
quitItem.setAccelerator(KeyStroke.getKeyStroke("alt Q"));
quitItem.addActionListener(this);
allItem.setActionCommand("3");
allItem.setAccelerator(KeyStroke.getKeyStroke("alt A"));
allItem.addActionListener(this);
cutItem.setActionCommand("4");
cutItem.setAccelerator(KeyStroke.getKeyStroke("alt T"));
cutItem.addActionListener(this);
copyItem.setActionCommand("5");
copyItem.setAccelerator(KeyStroke.getKeyStroke("alt C"));
copyItem.addActionListener(this);
pasteItem.setActionCommand("6");
pasteItem.setAccelerator(KeyStroke.getKeyStroke("alt P"));
pasteItem.addActionListener(this);
alarmItem.setActionCommand("8");
alarmItem.setAccelerator(KeyStroke.getKeyStroke("alt M"));
alarmItem.addActionListener(this);
calculatorItem.setActionCommand("7");
calculatorItem.setAccelerator(KeyStroke.getKeyStroke("alt U"));
calculatorItem.addActionListener(this);
helpItem.setActionCommand("9");
helpItem.setAccelerator(KeyStroke.getKeyStroke("alt H"));
helpItem.addActionListener(this);
setJMenuBar(menubar); //将菜单条加入容器中
getContentPane().add(sp,BorderLayout.CENTER); //向内容窗格中加入卷动窗格组件
JPanel tools1Panel=new JPanel(); //建立两个JPanel面板
JPanel tools2Panel=new JPanel();
icon= new ImageIcon[11]; //为数组分配每个元素的引用空间
btn=new JButton[11];
for(int i=0;i<=5;i++){ //记事本最上行的工具栏
icon[i]=new ImageIcon("icon/"+i+".jpg");
btn[i]=new JButton(icon[i]); //为每个数组元素分配空间
tools1Panel.add(btn[i]);
}
for(int i=6;i<=10;i++){ //记事本最下行的工具栏
icon[i]=new ImageIcon("icon/"+i+".jpg");
btn[i]=new JButton(icon[i]);
tools2Panel.add(btn[i]);
}
getContentPane().add(tools1Panel,BorderLayout.NORTH); //对面板进行布局
getContentPane().add(tools2Panel,BorderLayout.SOUTH);
for(int i=0;i<=10;i++){ //设置工具栏按钮的命令与监听
btn[i].setActionCommand(String.valueOf(i));
btn[i].addActionListener(this);
}
Icon timeIcon=new ImageIcon("icon/time.gif"); //创建对话框的图标
//创建一个闹铃时间设置的对话框面板
alarmPane=new JOptionPane("<html><h2><font color=blue>请输入闹铃时间:\n格式 小时,分钟,秒钟(如: 09:26:00)",JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_CANCEL_OPTION,timeIcon);
alarmPane.setWantsInput(true); //设置成有输入区,以实现用户输入时间
alarmDialog=alarmPane.createDialog(this,"自制闹铃"); //建立闹钟对话框
Icon musicIcon=new ImageIcon("icon/music.gif");
//创建一个闹铃铃声选择的对话框面板
musicPane=new JOptionPane("<html><h2><font color=blue>请选择铃声音乐:",JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_CANCEL_OPTION,musicIcon);
musicPane.setSelectionValues(values); //设置输入区的资料
musicDialog=musicPane.createDialog(this,"选择铃声"); //建立音乐选择对话框
Icon helpIcon=new ImageIcon("icon/sun.gif");
//创建一个帮助对话框面板
helpPane=new JOptionPane("<html><h2><font color=red>使用这么'简单'的记事本还需要帮助嘛?!! ",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,helpIcon);
helpDialog=helpPane.createDialog(this,"帮助"); //建立帮助对话框
Icon alarmIcon=new ImageIcon("icon/alarm.gif");
//创建一个提醒对话框面板
wakePane=new JOptionPane("<html><h2><font color=red>时间到啦!时间到啦!",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,alarmIcon);
wakeDialog=wakePane.createDialog(this,"提醒!"); //建立提醒对话框
}
public void actionPerformed(ActionEvent e){ //对监听到的事件进行处理
if(e.getActionCommand().equals("1")){ //监听到打开按钮的事件处理
int val=fc.showOpenDialog(this); //打开存取对话框
if(val==JFileChooser.APPROVE_OPTION){ //如果按下赞成钮,则调用readerMethod()方法
readerMethod();
}
}
else if(e.getActionCommand().equals("2")){ //监听到保存按钮的事件处理
int val=fc.showSaveDialog(this); //打开存取对话框
if(val==JFileChooser.APPROVE_OPTION){ //如果按下赞成钮,则调用writerMethod()方法
writerMethod();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -