版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
功能界面展示:記事本完整代碼:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.CaretEvent;importjavax.swing.event.CaretListener;importjava.io.*;@SuppressWarnings("serial")classmynotepadextendsJFrame{ Filefile=null; JTextAreacontent=newJTextArea(); JFileChooseropenfile=newJFileChooser(); JColorChooseropencolor=newJColorChooser(); JDialogabout=newJDialog(this); JMenuBarmenu=newJMenuBar(); JFramep=newJFrame(); booleanWordWrap=false; booleanstatus=false; mynotepad(){ initTextContent(); initMenu(); } voidinitTextContent(){ JScrollPanescroll=newJScrollPane(content); getContentPane().add(scroll); this.getContentPane().add(scroll,BorderLayout.CENTER); } JMenu[]menus=newJMenu[]{newJMenu("文件(F)"),newJMenu("編輯(E)"), newJMenu("格式(O)"),newJMenu("查找(V)"),newJMenu("幫助(H)")}; JMenuItemoptionofmenu[][]=newJMenuItem[][]{ {newJMenuItem("新建"),newJMenuItem("打開"),newJMenuItem("保存
"), newJMenuItem("退出")}, {newJMenuItem("復(fù)制"),newJMenuItem("剪切"),newJMenuItem("粘
貼"), newJMenuItem("全選"),newJMenuItem("查找"),new
JMenuItem("替換")}, {newJCheckBoxMenuItem("自動換行(W)"),newJMenuItem("字體(F)")}, {newJMenuItem("狀態(tài)欄(S)")}, {newJMenuItem("幫助")}}; JLabeljs=newJLabel(); voidinitMenu(){ for(inti=0;i<menus.length;i++){ menu.add(menus[i]); for(intj=0;j<optionofmenu[i].length;j++){ menus[i].add(optionofmenu[i][j]); optionofmenu[i][j].addActionListener(action); } } menu.add(js); menus[0].setMnemonic(KeyEvent.VK_F); menus[1].setMnemonic(KeyEvent.VK_E); menus[2].setMnemonic(KeyEvent.VK_O); menus[3].setMnemonic(KeyEvent.VK_V); menus[4].setMnemonic(KeyEvent.VK_H); optionofmenu[2][0].setMnemonic(KeyEvent.VK_W); optionofmenu[2][1].setMnemonic(KeyEvent.VK_F); optionofmenu[3][0].setMnemonic(KeyEvent.VK_S); optionofmenu[1][4].addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ finalJDialogdialog=newJDialog(about,"查找字符串...",
true); dialog.setBounds(560,250,310,130); JLabelfind=newJLabel("請輸入字符串:"); finalJTextFieldfindtext=newJTextField(1); JButtonjbu=newJButton("查找"); dialog.setLayout(null); find.setBounds(10,30,90,20); findtext.setBounds(100,30,90,20); jbu.setBounds(200,30,80,20); dialog.add(find); dialog.add(findtext); dialog.add(jbu); jbu.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringtext=content.getText(); Stringstr=findtext.getText(); intend=text.length(); intlen=str.length(); intstart=content.getSelectionEnd(); if(start==end){ start=0; } for(;start<=end-len;start++){ if(text.substring(start,start+
len).equals(str)){ content.setSelectionStart
(start); content.setSelectionEnd
(start+len); return; } } //若找不到待查字符串,則將光標(biāo)置于末尾 content.setSelectionStart(end); content.setSelectionEnd(end); } }); dialog.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dialog.dispose(); } }); dialog.setResizable(false); dialog.setVisible(true); } }); optionofmenu[1][5].addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ finalJDialogdialog=newJDialog(about,"字符串替換...",
true); dialog.setBounds(560,250,310,180); finalJLabeltihuan=newJLabel("請輸入要替換的字符串
:"); finalJLabelmubiao=newJLabel("請輸入替換后的字符串
:"); finalJTextFieldjtf1=newJTextField(10); finalJTextFieldjtf2=newJTextField(10); JButtonjb=newJButton("替換"); dialog.setLayout(null); tihuan.setBounds(10,30,150,20); mubiao.setBounds(10,70,150,20); jtf1.setBounds(160,30,110,20); jtf2.setBounds(160,70,110,20); jb.setBounds(100,110,80,20); dialog.add(tihuan); dialog.add(mubiao); dialog.add(jtf1); dialog.add(jtf2); dialog.add(jb); jb.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ if(content.getText().contains
(jtf1.getText())) content.setText(content.getText
().replaceFirst( jtf1.getText(),
jtf2.getText())); else{ JOptionPane.showConfirmDialog(null, "沒找到"+
jtf1.getText()); } } }); dialog.setResizable(false); dialog.setVisible(true); } }); JToolBarjb=newJToolBar(); jb.setBackground(newColor(236,233,216)); JLabeljl1=newJLabel(String.format("字符總長:0總行數(shù):0")); jl1.setFont(newFont("宋體",0,12)); jb.add(jl1); JSeparators=newJSeparator(); s.setOrientation(SwingConstants.VERTICAL); jb.add(s); JLabeljl2=newJLabel(String.format("當(dāng)前行:0當(dāng)前列:0")); jl2.setFont(newFont("宋體",0,12)); jb.add(jl2); jb.setFloatable(false); jb.setVisible(status); this.getContentPane().add(jb,BorderLayout.SOUTH); content.addCaretListener(newCaretListener(){ @Override publicvoidcaretUpdate(CaretEvente){ //TODOAuto-generatedmethodstub JTextAreaeditArea=(JTextArea)e.getSource();intlinenum=1;intcolumnnum=1;try{intcaretpos=editArea.getCaretPosition();linenum=editArea.getLineOfOffset(caretpos);columnnum=caretpos-editArea.getLineStartOffset(linenum);linenum+=1;}catch(Exceptionex){}jl1.setText(String.format("字符總長:%d總行數(shù):%d",editArea.getText
().length(),editArea.getLineCount()));jl2.setText(String.format("當(dāng)前行:%d當(dāng)前列:%d",linenum,columnnum)); }}); optionofmenu[3][0].addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ status=!status; if(status){ jb.setVisible(status); } else{ jb.setVisible(status); }} }); this.setJMenuBar(menu); } ActionListeneraction=newActionListener(){ @SuppressWarnings("unused") publicvoidactionPerformed(ActionEvente){ Stringname=e.getActionCommand(); JMenuItemMI=(JMenuItem)e.getSource(); if("新建".equals(name)){ content.setText(""); file=null; }elseif("打開".equals(name)){ if(file!=null) openfile.setSelectedFile(file); intreturnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=openfile.getSelectedFile(); unfold(); } }elseif("保存".equals(name)){ if(file!=null) openfile.setSelectedFile(file); intreturnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=openfile.getSelectedFile(); saving(); } }elseif("退出".equals(name)){ mynotepadf=newmynotepad(); ints=JOptionPane.showConfirmDialog(f,"退出?","退出", JOptionPane.YES_NO_OPTION); if(s==JOptionPane.YES_OPTION) System.exit(0); }elseif("剪切".equals(name)){ content.cut(); }elseif("復(fù)制".equals(name)){ content.copy(); }elseif("粘貼".equals(name)){ content.paste(); }elseif(e.getActionCommand().equals("全選")){ content.selectAll(); }elseif(e.getActionCommand().equals("自動換行(W)")){ WordWrap=!(WordWrap); content.setLineWrap(WordWrap); }elseif(e.getActionComm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度網(wǎng)絡(luò)安全風(fēng)險評估與解決方案合同范本3篇
- 二零二五版股權(quán)激勵合同:某上市公司對高級管理人員股權(quán)激勵計劃3篇
- 2025年度時尚服飾店開業(yè)活動承包合同3篇
- 2025年度高端不銹鋼醫(yī)療器械制造委托合同3篇
- 二零二五版智能穿戴設(shè)備代加工合同范本2篇
- 二零二五年度環(huán)保型車間生產(chǎn)承包服務(wù)合同范本3篇
- 二零二五年高管子女教育援助與扶持合同3篇
- 2025年草場租賃與牧區(qū)基礎(chǔ)設(shè)施建設(shè)合同3篇
- 二零二五版涵洞工程勞務(wù)分包單價及工期延誤賠償合同3篇
- 二零二五版財務(wù)報表編制會計勞動合同范本3篇
- GB/T 34241-2017卷式聚酰胺復(fù)合反滲透膜元件
- GB/T 12494-1990食品機械專用白油
- 運輸供應(yīng)商年度評價表
- 成熙高級英語聽力腳本
- 北京語言大學(xué)保衛(wèi)處管理崗位工作人員招考聘用【共500題附答案解析】模擬試卷
- 肺癌的診治指南課件
- 人教版七年級下冊數(shù)學(xué)全冊完整版課件
- 商場裝修改造施工組織設(shè)計
- 統(tǒng)編版一年級語文上冊 第5單元教材解讀 PPT
- 加減乘除混合運算600題直接打印
- ASCO7000系列GROUP5控制盤使用手冊
評論
0/150
提交評論