记事本源码.docx
- 文档编号:7707356
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:17
- 大小:19.76KB
记事本源码.docx
《记事本源码.docx》由会员分享,可在线阅读,更多相关《记事本源码.docx(17页珍藏版)》请在冰豆网上搜索。
记事本源码
//Note.java
/*
*主界面布局
*/
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.MenuItem;
importjava.awt.PopupMenu;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjavax.swing.*;
importjavax.swing.undo.UndoManager;
publicclassNote{
privateJMenujmenu;
privateJMenuBarmb;
privateJMenuItemjmi;
privatestaticJTextAreata;
privatestaticJFramejf;
privatestaticUndoManagerum;
privatestaticJLabeljl1;
privatestaticJLabeljl2;
privatestaticJToolBarjb;
privateString[]menu_name=newString[]//菜单
{"文件","编辑","设置","关于"};
privateString[][]menu_item=newString[][]{//子菜单
{"打开","保存","退出"},
{"撤销","恢复","复制","粘贴","剪切","删除"},
{"自动换行","字体颜色","恢复默认"},
{"关于记事本"}
};
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 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(){ for(inti=0;i { jmenu=newJMenu(menu_name[i]); jmenu.setFont(newFont("宋体",0,12)); for(intj=0;j { jmi=newJMenuItem(menu_item[i][j]); jmi.setFont(newFont("宋体",0,12)); 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("宋体",0,12)); jb.add(jl1); JSeparators=newJSeparator();//设置分隔符 s.setOrientation(SwingConstants.VERTICAL); jb.add(s); jl2=newJLabel("当前行: "+1+"当前列: "+0+""); jl2.setFont(newFont("宋体",0,12)); 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",font); UIManager.put("CheckBoxMenuItem.acceleratorFont",font); UIManager.put("CheckBoxMenuItem.font",font); UIManager.put("ColorChooser.font",font); UIManager.put("ComboBox.font",font); UIManager.put("DesktopIcon.font",font); UIManager.put("EditorPane.font",font); UIManager.put("FormattedTextField.font",font); UIManager.put("InternalFrame.titleFont",font); UIManager.put("Label.font",font); UIManager.put("List.font",font); UIManager.put("Menu.acceleratorFont",font); UIManager.put("Menu.font",font); UIManager.put("MenuBar.font",font); UIManager.put("MenuItem.acceleratorFont",font); UIManager.put("MenuItem.font",font); UIManager.put("OptionPane.font",font); UIManager.put("Panel.font",font); UIManager.put("PasswordField.font",font); UIManager.put("PopupMenu.font",font); UIManager.put("ProgressBar.font",font); UIManager.put("RadioButton.font",font); UIManager.put("RadioButtonMenuItem.acceleratorFont",font); UIManager.put("RadioButtonMenuItem.font",font); UIManager.put("ScrollPane.font",font); UIManager.put("Spinner.font",font); UIManager.put("TabbedPane.font",font); UIManager.put("Table.font",font); UIManager.put("TableHeader.font",font); UIManager.put("TextArea.font",font); UIManager.put("TextField.font",font); UIManager.put("TextPane.font",font); UIManager.put("TitledBorder.font",font); UIManager.put("ToggleButton.font",font); UIManager.put("ToolBar.font",font); UIManager.put("ToolTip.font",font); UIManager.put("Tree.font",font); UIManager.put("Viewport.font",font); } } //Handler.java importjava.io.*; importjava.awt.Color; importjava.awt.datatransfer.Clipboard; importjava.awt.datatransfer.DataFlavor; importjava.awt.datatransfer.StringSelection; importjava.awt.datatransfer.Transferable; importjava.awt.event.*; importjavax.swing.*; 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(); for(inti=0;i {if(event_name[i].equals(s)) { index=i; } } switch(index) { case0: OpenFile();//打开 break; case1: SaveFile();//保存 break; case2: //退出程序 Exit(); break; case3: if(Note.getUM().canUndo()){//撤销 Note.getUM().undo(); } break; case4: if(Note.getUM().canRedo()){//恢复 Note.getUM().redo(); } case5: Copy();//复制 break; case6: Paste();//粘贴 break; case7: Cut();//剪切 break; case8: Delete();//删除 break; case9: Note.getTextArea().setLineWrap(true); Note.getJb().setEnabled(false); Note.getJb().setVisible(false); break; case10: SetFontColor();//设置颜色 break; case11: Note.getTextArea().setLineWrap(false); Note.getTextArea().setForeground(Color.black); Note.getJb().setEnabled(true); Note.getJb().setVisible(true); break; case12: //关于 JFramejf=newJFrame(); //jf.setSize(360,140); //jf.setVisible(true); //Iconic=newImageIcon("about.png"); JOptionPane.showMessageDialog (jf,"PoweredbyTeam255"+"\n" +"Version: 1.0"+"\n"+ "开发人员: 陈灏,刘西,谭向斌,唐仕霖","关于记事本",1); break; } } voidDelete(){//删 JTextAreata=Note.getTextArea(); intstart=ta.getSelectionStart(); intend=ta.getSelectionEnd(); ta.replaceRange("",start,end); } voidCut(){//剪 JTextAreata=Note.getTextArea(); Stringtemp=ta.getSelectedText();//拖动鼠标选取文本。 StringSelectiontext=newStringSelection(temp); clipboard.setContents(text,null); intstart=ta.getSelectionStart(); intend=ta.getSelectionEnd(); ta.replaceRange("",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();//拖动鼠标选取文本。 StringSelectiontext=newStringSelection(temp); clipboard.setContents(text,null); } 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)//点击否,则退出 {System.exit(0);} //elseif(s==JOptionPane.CANCEL_OPTION)//点关闭 //{} //elseif(s==JOptionPane.CLOSED_OPTION) //{} } } publicvoidwindowExit(){//退出 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;Newwindow();}//取消保存,则将RE置0,返回主界面 } elseif(s==JOptionPane.NO_OPTION)//点击否,则退出 {System.exit(0);} elseif(s==JOptionPane.CANCEL_OPTION)//点关闭 {Newwindow();} elseif(s==JOptionPane.CLOSED_OPTION) {Newwindow();} } } privatevoidNewwindow(){ Stringtemp=Note.getTextArea().getText(); newNote(); Note.getTextArea().setText(temp); } privat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 记事本 源码