简易JAVA记事本小程序.docx

上传人:b****6 文档编号:6712020 上传时间:2023-01-09 格式:DOCX 页数:19 大小:82.42KB
下载 相关 举报
简易JAVA记事本小程序.docx_第1页
第1页 / 共19页
简易JAVA记事本小程序.docx_第2页
第2页 / 共19页
简易JAVA记事本小程序.docx_第3页
第3页 / 共19页
简易JAVA记事本小程序.docx_第4页
第4页 / 共19页
简易JAVA记事本小程序.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

简易JAVA记事本小程序.docx

《简易JAVA记事本小程序.docx》由会员分享,可在线阅读,更多相关《简易JAVA记事本小程序.docx(19页珍藏版)》请在冰豆网上搜索。

简易JAVA记事本小程序.docx

简易JAVA记事本小程序

简易JAVA记事本小程序

源码如下(仅供参考,如有雷同纯属巧合):

提示:

直接拷贝如下代码粘贴到一个类即可.

packagenote;

importjava.awt.Font;

importjava.awt.GraphicsEnvironment;

importjava.awt.List;

importjava.awt.Toolkit;

importjava.awt.datatransfer.Clipboard;

importjava.awt.datatransfer.DataFlavor;

importjava.awt.datatransfer.Transferable;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.ItemEvent;

importjava.awt.event.ItemListener;

importjava.awt.event.MouseEvent;

importjava.awt.event.MouseListener;

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.InputStreamReader;

importjava.io.PrintWriter;

importjavax.swing.BorderFactory;

importjavax.swing.ButtonGroup;

importjavax.swing.JButton;

importjavax.swing.JDialog;

importjavax.swing.JFileChooser;

importjavax.swing.JFrame;

importjavax.swing.JMenu;

importjavax.swing.JMenuBar;

importjavax.swing.JMenuItem;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JPopupMenu;

importjavax.swing.JRadioButton;

importjavax.swing.JScrollPane;

importjavax.swing.JTextArea;

importjavax.swing.JTextField;

importjavax.swing.ScrollPaneConstants;

importjavax.swing.filechooser.FileFilter;

importjavax.swing.undo.UndoManager;

/**

*@authortarena-sqc

*@time2013-5-27

*/

publicclassNotePadextendsJFrame{

privatestaticfinallongserialVersionUID=-3688252937725788365L;

privateMyJTextAreaarea;

privateJScrollPanepane;

privateJMenuBarmenuBar;

publicJTextAreagetArea(){

returnarea;

}

publicNotePad(){

area=newMyJTextArea();

pane=newJScrollPane(area);

pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

menuBar=initBar();

}

/**初始化菜单栏*/

privateJMenuBarinitBar(){

JMenuBarbar=newJMenuBar();

String[]mainMenuText=newString[]{"文件","编辑","格式","查看","帮助"};

String[][]subMenuText=newString[][]{{"打开","保存","另存为","退出"},

{"撤销","恢复","剪切","复制","粘贴"},{"自动换行","字体"},{"状态栏"},

{"关于记事本"}};

Fontfont=newFont("宋体",0,14);

MyActionListenerlen=newMyActionListener(this);

for(inti=0;i

JMenumainMenu=newJMenu(mainMenuText[i]);

mainMenu.setFont(font);

for(intj=0;j

JMenuItemsubMenu=newJMenuItem(subMenuText[i][j]);

subMenu.setFont(font);

mainMenu.add(subMenu);

if(j%2==0)

mainMenu.addSeparator();//添加分割线

subMenu.setActionCommand(subMenuText[i][j]);//设置监听器标志

subMenu.addActionListener(len);//追加监听器

}

bar.add(mainMenu);

}

returnbar;

}

/**窗口显示函数*/

publicvoidshowMe(){

//屏幕居中

Toolkitkit=Toolkit.getDefaultToolkit();

this.setLocation(kit.getScreenSize().width/2-300,

kit.getScreenSize().height/2-200);

this.setJMenuBar(menuBar);

this.add(pane);

this.setTitle("记事本");

this.setSize(600,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

publicstaticvoidmain(String[]args){

newNotePad().showMe();

}

}

/**关于文件操作类*/

classFileOperation{//所有文件操作

privateNotePadnotePad;

privateJTextAreaarea;

privateJFileChooserch;

privateFilefile;

privateUndoManagerundo;

publicFileOperation(NotePadnotePad){

this.notePad=notePad;

ch=initJFileChooser();

area=notePad.getArea();

undo=newUndoManager();

//设置撤销恢复监听器

area.getDocument().addUndoableEditListener(undo);

}

privateJFileChooserinitJFileChooser(){

JFileChooserch=newJFileChooser();

ch.setFileFilter(newFileFilter(){

@Override

publicStringgetDescription(){

return"*.txt";

}

@Override

publicbooleanaccept(Filef){

returnf.getName().endsWith(".txt");

}

});

returnch;

}

/**打开文件操作*/

publicvoidopenFile(){

try{

intstate=ch.showOpenDialog(notePad);

if(state==JFileChooser.CANCEL_OPTION)

return;

file=ch.getSelectedFile();

BufferedReaderreader=newBufferedReader(newInputStreamReader(

newFileInputStream(file)));

StringBuffersb=newStringBuffer();

Stringstr;

while((str=reader.readLine())!

=null){

sb.append(str).append("\n");

}

area.setText(sb.toString());

reader.close();

}catch(Exceptione){

e.printStackTrace();

}

}

/**保存文件操作*/

publicvoidsaveFile(){

if(file!

=null){

writeFile(file);

}else{

intstute=ch.showSaveDialog(notePad);

if(stute==JFileChooser.CANCEL_OPTION)

return;

file=ch.getSelectedFile();

writeFile(file);

}

}

privatevoidwriteFile(Filef){

try{

PrintWriterpw=newPrintWriter(f);

pw.println(area.getText());

pw.close();

}catch(FileNotFoundExceptione){

e.printStackTrace();

}

}

/**另存为文件操作*/

publicvoidotherFile(){

intstute=ch.showSaveDialog(notePad);

if(stute==JFileChooser.CANCEL_OPTION)

return;

file=ch.getSelectedFile();

writeFile(file);

}

/**撤销文件操作*/

publicvoidundo(){

if(undo.canUndo()){

undo.undo();

}else{

JOptionPane.showMessageDialog(notePad,"不能撤销");

}

}

/**恢复文件操作*/

publicvoidredo(){

if(undo.canRedo()){

undo.redo();

}else{

JOptionPane.showMessageDialog(notePad,"不能恢复");

}

}

/**剪切文件操作*/

publicvoidcut(){

area.cut();

}

/**复制文件操作*/

publicvoidcopy(){

area.copy();

}

/**粘贴文件操作*/

publicvoidpaste(){

area.paste();

}

/**退出*/

publicvoidexit(){

intstate=JOptionPane.showConfirmDialog(notePad,"您确定要退出了?

");

if(state==JOptionPane.OK_OPTION)

System.exit(0);

}

/**字体*/

publicvoidfont(){

newFontDialog(notePad,area);

}

/**关于记事本*/

publicvoidabout(){

JOptionPane

.showMessageDialog(notePad,

"本程序由大庆中心达内科技教学经理-XXX开发\n如有问题请联系QQ:

271224258\n达内科技网址:

");

}

}

classMyActionListenerimplementsActionListener{

privateFileOperationfileOperation;

publicMyActionListener(NotePadnotePad){

fileOperation=newFileOperation(notePad);

}

@Override

publicvoidactionPerformed(ActionEvente){

Stringcommand=e.getActionCommand();

if(command.equals("打开")){

fileOperation.openFile();

}elseif(command.equals("保存")){

fileOperation.saveFile();

}elseif(command.equals("另存为")){

fileOperation.otherFile();

}elseif(command.equals("退出")){

fileOperation.exit();

}elseif(command.equals("撤销")){

fileOperation.undo();

}elseif(command.equals("恢复")){

fileOperation.redo();

}elseif(command.equals("剪切")){

fileOperation.cut();

}elseif(command.equals("复制")){

fileOperation.copy();

}elseif(command.equals("粘贴")){

fileOperation.paste();

}elseif(command.equals("字体")){

fileOperation.font();

}elseif(command.equals("自动换行")){

}elseif(command.equals("状态栏")){

}elseif(command.equals("关于记事本")){

fileOperation.about();

}

}

}

classMyJTextAreaextendsJTextAreaimplementsMouseListener{

privatestaticfinallongserialVersionUID=3925928674894108922L;

privateJPopupMenupop;

privateJMenuItemcut,copy,paste;

publicMyJTextArea(){

this.addMouseListener(this);

pop=newJPopupMenu();

cut=newJMenuItem("剪切");

copy=newJMenuItem("复制");

paste=newJMenuItem("粘贴");

pop.add(cut);

pop.addSeparator();

pop.add(copy);

pop.addSeparator();

pop.add(paste);

actions();

this.add(pop);

}

publicvoidactions(){

copy.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

MyJTextArea.this.copy();

}

});

cut.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

MyJTextArea.this.cut();

}

});

paste.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

MyJTextArea.this.paste();

}

});

}

/**

*剪切板中是否有文本数据可供粘贴

*

*@returntrue为有文本数据

*/

publicbooleanisClipboardString(){

booleanb=false;

Clipboardclipboard=this.getToolkit().getSystemClipboard();

Transferablecontent=clipboard.getContents(this);

try{

if(content.getTransferData(DataFlavor.stringFlavor)instanceofString){

b=true;

}

}catch(Exceptione){

}

returnb;

}

/**

*文本组件中是否具备复制的条件

*

*@returntrue为具备

*/

publicbooleanisCanCopy(){

booleanb=false;

intstart=this.getSelectionStart();

intend=this.getSelectionEnd();

if(start!

=end)

b=true;

returnb;

}

@Override

publicvoidmouseClicked(MouseEvente){

}

@Override

publicvoidmousePressed(MouseEvente){

}

@Override

publicvoidmouseReleased(MouseEvente){

if(e.getButton()==MouseEvent.BUTTON3){

copy.setEnabled(isCanCopy());

paste.setEnabled(isClipboardString());

cut.setEnabled(isCanCopy());

pop.show(this,e.getX(),e.getY());

}

}

@Override

publicvoidmouseEntered(MouseEvente){

}

@Override

publicvoidmouseExited(MouseEvente){

}

}

/**字体对话框*/

classFontDialogimplementsActionListener,ItemListener{

privateListfontname,fontshape,fontsize;

privateJPanelpname,pshape,psize,pmodel,prb;

privateJTextFieldtxtname,txtshape,txtsize;

privateJTextAreatxtmodel;

privateJDialogdialog;

privateJButtonbtnok,btncancel;

privateJRadioButtonrbzw,rbyw,rbsz;

privateFontmodelfont;

privateJTextAreaarea;

publicFontDialog(JFramef,JTextAreaarea){

this.area=area;

GraphicsEnvironmentg=GraphicsEnvironment

.getLocalGraphicsEnvironment();

Stringname[]=g.getAvailableFontFamilyNames();

Stringshape[]={"常规","斜体","粗体倾斜","粗体"};

fontname=newList(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1