记事本源码Word下载.docx
《记事本源码Word下载.docx》由会员分享,可在线阅读,更多相关《记事本源码Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
打开"
保存"
退出"
},
撤销"
恢复"
复制"
粘贴"
剪切"
删除"
自动换行"
字体颜色"
恢复默认"
关于记事本"
}
};
privateStringjpm_name[]={//右键菜单
"
publicNote()
{
jf=newJFrame("
无标题-记事本"
);
jf.setSize(850,550);
jf.setLocation(100,100);
mb=newJMenuBar();
mb.setBackground(newColor(236,233,216));
jf.setJMenuBar(mb);
addMenu();
//添加菜单
addTextArea();
//添加文本输入区
addStatusBar();
//添加状态栏
addPopupMenu();
//添加右键菜单
jf.setVisible(true);
jf.addWindowListener(newWindowAdapter(){//监听关闭窗口动作
publicvoidwindowClosing(WindowEvente){
Handlerh=newHandler();
h.windowExit();
//super.windowClosing(e);
}
});
}
privatevoidaddPopupMenu(){//右键菜单
finalPopupMenujpm=newPopupMenu();
jpm.setFont(newFont("
宋体"
0,12));
for(inti=0;
i<
jpm_name.length;
i++){
MenuItemjpim=newMenuItem(jpm_name[i]);
jpm.add(jpim);
jpim.addActionListener(newPopupAction());
//创建右键监听
}
jf.add(jpm);
ta.addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON3){
jpm.show(ta,e.getX(),e.getY());
//设置显示区域
}
}
});
privatevoidaddTextArea(){
ta=newJTextArea();
ta.addMouseListener(newMouseHandler());
ta.addKeyListener(newMouseHandler());
um=newUndoManager();
ta.getDocument().addUndoableEditListener(um);
JScrollPanescroll=newJScrollPane(ta);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//自动出现水平动条
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
//自动出现竖滚动条
jf.getContentPane().add(scroll,BorderLayout.CENTER);
privatevoidaddMenu(){
menu_name.length;
i++)
{
jmenu=newJMenu(menu_name[i]);
jmenu.setFont(newFont("
for(intj=0;
j<
menu_item[i].length;
j++)
{
jmi=newJMenuItem(menu_item[i][j]);
jmi.setFont(newFont("
jmi.addActionListener(newHandler());
jmenu.add(jmi);
mb.add(jmenu);
privatevoidaddStatusBar(){
jb=newJToolBar();
jb.setBackground(newColor(236,233,216));
jl1=newJLabel("
字符总长:
"
+0+"
总行数:
+1+"
"
jl1.setFont(newFont("
jb.add(jl1);
JSeparators=newJSeparator();
//设置分隔符
s.setOrientation(SwingConstants.VERTICAL);
jb.add(s);
jl2=newJLabel("
当前行:
+1+"
当前列:
+0+"
jl2.setFont(newFont("
jb.add(jl2);
jb.setFloatable(false);
jf.getContentPane().add(jb,BorderLayout.SOUTH);
publicstaticvoidmain(String[]args){
SetFont();
newNote();
publicstaticJToolBargetJb(){
returnjb;
publicstaticJFramegetJFrame(){
returnjf;
publicstaticJLabelgetLabel1(){
returnjl1;
publicstaticJLabelgetLabel2(){
returnjl2;
staticUndoManagergetUM()
returnum;
staticJTextAreagetTextArea(){
returnta;
staticvoidSetFont()
Fontfont=newFont("
0,12);
UIManager.put("
Button.font"
font);
UIManager.put("
CheckBox.font"
CheckBoxMenuItem.acceleratorFont"
CheckBoxMenuItem.font"
ColorChooser.font"
ComboBox.font"
DesktopIcon.font"
EditorPane.font"
FormattedTextField.font"
InternalFrame.titleFont"
Label.font"
List.font"
Menu.acceleratorFont"
Menu.font"
MenuBar.font"
MenuItem.acceleratorFont"
MenuItem.font"
OptionPane.font"
Panel.font"
PasswordField.font"
PopupMenu.font"
ProgressBar.font"
RadioButton.font"
RadioButtonMenuItem.acceleratorFont"
RadioButtonMenuItem.font"
ScrollPane.font"
Spinner.font"
TabbedPane.font"
Table.font"
TableHeader.font"
TextArea.font"
TextField.font"
TextPane.font"
TitledBorder.font"
ToggleButton.font"
ToolBar.font"
ToolTip.font"
Tree.font"
Viewport.font"
//Handler.java
importjava.io.*;
importjava.awt.datatransfer.Clipboard;
importjava.awt.datatransfer.DataFlavor;
importjava.awt.datatransfer.StringSelection;
importjava.awt.datatransfer.Transferable;
importjava.awt.event.*;
importjavax.swing.filechooser.*;
publicclassHandlerimplementsActionListener{
Filefile=null;
JFramej=newJFrame();
String[]event_name=newString[]{
FileNameExtensionFilterfilter=newFileNameExtensionFilter("
文本文档(*.txt)"
"
txt"
JFileChooseropenfile=newJFileChooser("
."
//创建文件筛选
privateintindex;
intre=0;
Clipboardclipboard=j.getToolkit().getSystemClipboard();
//获取系统剪贴板
publicvoidactionPerformed(ActionEventevent){
Strings=event.getActionCommand();
event_name.length;
i++)//监听点击菜单事件,实现相应功能
{if(event_name[i].equals(s))
index=i;
switch(index)
case0:
OpenFile();
//打开
break;
case1:
SaveFile();
//保存
case2:
//退出程序
Exit();
case3:
if(Note.getUM().canUndo()){//撤销
Note.getUM().undo();
case4:
if(Note.getUM().canRedo()){//恢复
Note.getUM().redo();
case5:
Copy();
//复制
case6:
Paste();
//粘贴
case7:
Cut();
//剪切
case8:
Delete();
//删除
case9:
Note.getTextArea().setLineWrap(true);
Note.getJb().setEnabled(false);
Note.getJb().setVisible(false);
case10:
SetFontColor();
//设置颜色
case11:
Note.getTextArea().setLineWrap(false);
Note.getTextArea().setForeground(Color.black);
Note.getJb().setEnabled(true);
Note.getJb().setVisible(true);
case12:
//关于
JFramejf=newJFrame();
//jf.setSize(360,140);
//jf.setVisible(true);
//Iconic=newImageIcon("
about.png"
JOptionPane.showMessageDialog
(jf,"
PoweredbyTeam255"
+"
\n"
+"
Version:
1.0"
+
"
开发人员:
陈灏,刘西,谭向斌,唐仕霖"
1);
voidDelete(){//删
JTextAreata=Note.getTextArea();
intstart=ta.getSelectionStart();
intend=ta.getSelectionEnd();
ta.replaceRange("
start,end);
voidCut(){//剪
Stringtemp=ta.getSelectedText();
//拖动鼠标选取文本。
StringSelectiontext=newStringSelection(temp);
clipboard.setContents(text,null);
intstart=ta.getSelectionStart();
start,end);
//从Text1中删除被选取的文本。
publicvoidPaste(){//粘
Transferablecontents=clipboard.getContents(this);
DataFlavorflavor=DataFlavor.stringFlavor;
if(contents.isDataFlavorSupported(flavor))
try{
Stringstr=(String)contents.getTransferData(flavor);
Note.getTextArea().append(str);
}
catch(Exceptionee){}
}
publicvoidCopy(){//复
Stringtemp=Note.getTextArea().getSelectedText();
publicvoidExit()
if(Note.getTextArea().getText().equals("
))//判断是否有内容
{
System.exit(0);
else
ints=JOptionPane.showConfirmDialog(j,"
是否保存退出?
记事本"
JOptionPane.YES_NO_CANCEL_OPTION);
//提示用户是否退出
if(s==JOptionPane.YES_OPTION)
{SaveFile();
if(re==0)//保存成功,则退出
{System.exit(0);
else{re=0;
}//取消保存,则将RE置0,返回主界面
elseif(s==JOptionPane.NO_OPTION)//点击否,则退出
//elseif(s==JOptionPane.CANCEL_OPTION)//点关闭
//{}
//elseif(s==JOptionPane.CLOSED_OPTION)
//{}
publicvoidwindowExit(){//退出
Newwindow();
elseif(s==JOptionPane.CANCEL_OPTION)//点关闭
{Newwindow();
elseif(s==JOptionPane.CLOSED_OPTION)
privatevoidNewwindow(){
Stringtemp=Note.getTextArea().getText();
newNote();
Note.getTextArea().setText(temp);
privat