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

📄 mymemo.java

📁 里面写的是 一些J2SE 的日历和 计算机的代码 还有时间钟表的代码 供初学者参考
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class MyMemo extends JFrame implements ActionListener{
	MyMenuBar mb = new MyMenuBar();
	JTextArea editor = new JTextArea();
	MyFile mf = new MyFile(this);
	
	MyFindDialog mfD = new MyFindDialog(this,editor);

  	public MyMemo(String title){
  	 super(title);
  	 this.setMenuBar(mb);
  	 mb.addMenus();
  	 mb.addMenuItems();
  	 
  	 for(int i=0;i<mb.getMenuCount();i++){
			for(int j=0;j<mb.getMenu(i).getItemCount();j++){
				mb.getMenu(i).getItem(j).addActionListener(this);
			}
	}
  	 
  	 this.add(editor);
  	 this.setBounds(400,200,300,300);
  	 this.setVisible(true);
  }
  
  public void actionPerformed(ActionEvent e){
		String selected = e.getActionCommand();
		if(selected == "新建"){
			editor.setText("");
		}
		else if(selected=="打开"){
			editor.setText(mf.getData());
		}
		else if(selected=="保存"){
			mf.setData(editor.getText());
		}
		else if(selected == "退出"){
			this.dispose();
		}
		else if(selected == "查找"){
		     mfD.showFind();//显示对话框的上半部分
		}
		else if(selected=="查找替换"){
			 mfD.showReplace();//显示对话框的全部
		}
	}
  
  public static void main(String[] args){
  	 new MyMemo("我的记事本");
  }
}

class MyMenuBar extends MenuBar {
	String[] menus={"文件","编辑","查找","帮助"};
	String[][] items={{"新建","打开","保存",null,"退出"},{"剪贴","复制","粘贴","清除",null,"全选"}
				,{"查找",null,"查找替换"},{"信息"}};
	
	/*public MyMenuBar(JFrame parent){
		parent.setMenuBar(this);
	}*/
	public void addMenus(){
		for(int i=0;i<menus.length;i++){
			this.add(new Menu(menus[i]));
		}		
	}
	
	public void addMenuItems(){
		for(int i=0;i<this.getMenuCount();i++){
			for(int j=0;j<items[i].length;j++){
				if(items[i][j]==null){
					getMenu(i).addSeparator();
				}
				else this.getMenu(i).add(items[i][j]);
				
			}
			
		}
	}
	

}

class MyFile extends FileDialog{
	public MyFile(Frame parent){
		super(parent);
	}
	
	//返回所选中的文件路径
	private String getPath(){
		return this.getDirectory()+"\\"+this.getFile();
	}
	
	//返回所选的文件内容,以字符串的形式
	public String getData(){
		String line;
		StringBuffer sb = new StringBuffer();
		this.setTitle("打开");
		this.setMode(FileDialog.LOAD);
		this.setVisible(true);
		try{
			BufferedReader br = 
				new BufferedReader(new FileReader(getPath()));
			while((line = br.readLine())!=null){
				sb.append(line+'\n');}
			br.close();
		
		 
		}catch(IOException e){
			e.printStackTrace();
		}
		
		return sb.toString();
	}
	
	//将data存入所选的文件中
	public void setData(String data){
		this.setTitle("保存");
		this.setMode(FileDialog.SAVE);
		this.setVisible(true);
		try{
			BufferedWriter bw = 
				new BufferedWriter(new FileWriter(getPath()));
			bw.write(data);
			bw.close();
		
		 
		}catch(IOException e){
			e.printStackTrace();
		}
	} 
	
}

class MyFindDialog extends Dialog implements ActionListener{
	JTextArea jta ;
	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("替换");
	
	
	public MyFindDialog(MyMemo owner,JTextArea jta){
		super(owner,"",false);
		this.jta = jta;
		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);
    	
    	this.addWindowListener(new WindowAdapter(){
    		public void windowClosing(WindowEvent e){
           		MyFindDialog.this.dispose();
         }
    	});
    	
	}//11ab11ab11
	
	private void find(){
		jta.requestFocus();
		String text = jta.getText();
		String str = tFind.getText();
		
		int textL = text.length();
		int strL = str.length();
		int start = jta.getSelectionEnd();
		if(start==textL){
			start =0 ;
		}
		
		for(  ;start<=textL-strL;start++){
			String s = text.substring(start,start+strL);
			if(s.equals(str)){
				//jta.setSelectionColor(Color.red);
				jta.setSelectionStart(start);
				jta.setSelectionEnd(start+strL);
				
				return ;
				
			}
		}
		jta.setSelectionStart(textL);
		jta.setSelectionEnd(textL);
		
	}
	private void replace(){
		find();
		if(jta.getSelectedText()!=null){
			String s = tReplace.getText();
			jta.replaceRange(s,jta.getSelectionStart()
									,jta.getSelectionEnd());
		}
	}
	
	
	public void actionPerformed(ActionEvent e){
		if(e.getSource() == bFind){
			this.find();
		}
		else this.replace();
	
	}
	
	//查找 显示上半边
	public void showFind(){
		this.setTitle("查找");
		this.setBounds(400,400,280,60);
		this.setVisible(true);
	}
	public void showReplace(){
		this.setTitle("查找替换");
		this.setBounds(400,400,280,100);
		this.setVisible(true);
	}
	
	
	
}

⌨️ 快捷键说明

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