⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mymenubar.java

📁 用JAVA语言实现的计算器小程序.如果安装了JVM可以直接运行NotePad.jar文件,已经调试通过的源代码.
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import java.io.*;import java.awt.datatransfer.*;public class MyMenuBar extends MenuBar{//菜单栏,主要是对MenuBar的应用public MyMenuBar(Frame parent){	parent.setMenuBar(this);    }public void addMenu(String[]menus){//添加菜单	for(int i=0;i<menus.length;i++)		add(new Menu(menus[i]));    }public void addMenuItems(int menuNumber,String[]items){//添加菜单中的子项菜单或分隔符	for(int i=0;i<items.length;i++){		if(items[i]!=null)			getMenu(menuNumber).add(new MenuItem(items[i]));		else			getMenu(menuNumber).addSeparator();	       }	      }public void addActionListener(ActionListener al){	for(int i=0;i<getMenuCount();i++)		for(int j=0;j<getMenu(i).getItemCount();j++)					getMenu(i).getItem(j).addActionListener(al);      }}class MyFile{//对文件进行操作,打开或者保存,主要是对Dialog的应用		private FileDialog fDlg;	public MyFile(Frame parent){	   fDlg=new FileDialog(parent,"",FileDialog.LOAD);	}	private String getPath(){//获得打开文件的路径		return fDlg.getDirectory()+"\\"+fDlg.getFile();	}	public String getData()throws Exception{//读取打开文件的内容			fDlg.setTitle("打开");		fDlg.setMode(FileDialog.LOAD);		fDlg.setVisible(true);		BufferedReader br=new BufferedReader(new FileReader(getPath()));		StringBuffer sb=new StringBuffer();		String aline;		while((aline=br.readLine())!=null)			sb.append(aline+'\n');		br.close();		return sb.toString();		   	}	public void setData(String data)throws Exception{//保存文件		fDlg.setTitle("保存");		fDlg.setMode(FileDialog.SAVE);		fDlg.setVisible(true);		BufferedWriter bw=new BufferedWriter(new FileWriter(getPath()));		bw.write(data);		bw.close();	}}class MyClipboard{//剪贴板的应用	private Clipboard cb;	public MyClipboard(){		cb=Toolkit.getDefaultToolkit().getSystemClipboard();			}	public void setData(String data){//内容暂存于剪贴板		cb.setContents(new StringSelection(data),null);	}	public String getData(){//获取剪贴板的内容		Transferable content=cb.getContents(null);		try{			return (String)content.getTransferData(DataFlavor.stringFlavor);		}catch(Exception exp){}		return null;	}}class MyFindDialog extends Dialog implements ActionListener{//为查找和替换设计框架,并且实现相应的功能	private Label lFind=new Label("查找字符串");	private Label lReplace=new Label("替换字符串");	private TextField tFind=new TextField(10);	private TextField tReplace=new TextField(10);	private Button bFind=new Button("查找");	private Button bReplace=new Button("替换");	private TextArea ta;	public MyFindDialog(Frame owner,TextArea ta){		super(owner,"查找",false);		this.ta=ta;		//完成控件的布局,同时有关的其他设计		setLayout(null);		lFind.setBounds(10,30,80,20);		lReplace.setBounds(10,70,80,20);		tFind.setBounds(90,30,90,20);		tReplace.setBounds(90,70,90,20);		bFind.setBounds(190,30,80,20);		bReplace.setBounds(190,70,80,20);		add(lFind);add(tFind);add(bFind);add(lReplace);		add(tReplace);add(bReplace);		setResizable(false);		bFind.addActionListener(this);		bReplace.addActionListener(this);		addWindowListener(new WindowAdapter(){			public void windowClosing(WindowEvent e){				MyFindDialog.this.dispose();			}		});			}	public void showFind(){		setTitle("查找");setSize(280,60);setVisible(true);	}	public void showReplace(){		setTitle("查找替换");setSize(280,60);setVisible(true);	}	private void find(){//实现查找功能		String text=ta.getText();		String str=tFind.getText();		int end=text.length();		int len=str.length();		int start=ta.getSelectionEnd();					if(start==end)start=0;				for(;start<=end-len;start++){			if(text.substring(start,start+len).equals(str)){		ta.setSelectionStart(start);		ta.setSelectionEnd(start+len);		return;		  }		}		ta.setSelectionStart(end);		ta.setSelectionEnd(end);	}	private void replace(){//实现替换功能		String str=tReplace.getText();		if(ta.getSelectedText().equals(tFind.getText()))			ta.replaceRange(str, ta.getSelectionStart(), ta.getSelectionEnd());		else find();	}	public void actionPerformed(ActionEvent e){		if(e.getSource()==bFind)			find();		else			if(e.getSource()==bReplace)				replace();	}} class MyMemo extends Frame implements ActionListener {	private TextArea editor=new TextArea();	private MyFile mf=new MyFile(this);	private MyClipboard cb=new MyClipboard();	private MyFindDialog findDlg=new MyFindDialog(this,editor);	public MyMemo(String tittle){		super(tittle);		MyMenuBar mb=new MyMenuBar(this);				mb.addMenu(new String[]{"文件","编辑","查找","帮助"});		mb.addMenuItems(0,new String[]{"新建","打开","保存",null,"退出"});		mb.addMenuItems(1, new String[]{"剪贴","复制","粘贴","清除",null,"全选"});		mb.addMenuItems(2, new String[]{"查找",null,"查找替换"});		mb.addMenuItems(3, new String[]{"我的记事本"});		add(editor);		mb.addActionListener(this);		addWindowListener(new WindowAdapter(){			public void windowClosing(WindowEvent e){				MyMemo.this.dispose();			}		});			}	public void actionPerformed(ActionEvent e){		String selected=e.getActionCommand();		if(selected.equals("新建"))			editor.setText("");		else			if (selected.equals("打开")){			try{				editor.setText(mf.getData());							}catch(Exception exp){}		}			else 				if(selected.equals("保存")){					try{						mf.setData(editor.getText());					}catch(Exception exp){}				}				else					if(selected.equals("退出")){						dispose();					}					else						if(selected.equals("剪贴")){							cb.setData(editor.getSelectedText());							editor.replaceRange("", editor.getSelectionStart(), editor.getSelectionEnd());																			}						else							if(selected.equals("复制")){								cb.setData(editor.getSelectedText());							}							else								if(selected.equals("粘贴")){									String str=cb.getData();									editor.replaceRange(str, editor.getSelectionStart() , editor.getSelectionEnd());								}								else									if(selected.equals("清除")){										editor.replaceRange("", editor.getSelectionStart(),editor.getSelectionEnd());																														}									else										if(selected.equals("全选")){											editor.setSelectionStart(0);											editor.setSelectionEnd(editor.getText().length());										}										else											if(selected.equals("查找")){												findDlg.showFind();											}											else												if(selected.equals("查找替换")){													findDlg.showReplace();												}	}	public static void main(String[]args){		MyMemo memo=new MyMemo("NotePad");		memo.setSize(600,400);		memo.setLocation(300,100);		memo.setVisible(true);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -