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

📄 notepad_lookfor.java

📁 java 编写的代码
💻 JAVA
字号:
/**
 * 
 */
package com.edu.sccp.snail.notepad.view;

import java.awt.Color;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputMethodEvent;
import java.awt.event.InputMethodListener;
import java.beans.PropertyVetoException;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;

/**
 * @author 韩丽丽
 * @return 查找 
 * @time 2008-1-7
 */
public class Notepad_LookFor extends JFrame implements ActionListener{
	private JLabel notepad_label_look_message;
	private JTextField notepad_jtxtField_look_message;
	private JButton notepad_jbutton_look_next;
	private JButton notepad_jbutton_cansole;
	private ButtonGroup notepad_buttonGroup_look_direction;
	private JRadioButton notepad_jradiobutton_look_up;
	private JRadioButton notepad_jradiobutton_look_low;
	private JCheckBox notepad_checkbox_up_low;
	private JPanel notepad_jpanel_panelframe;
	private JPanel notepad_jpanel_panelradio;
	private Notepad_newFile notepad_newFile_resource;//用于指向要查找的原文本的textarea
	 //private String notepad_string_source = null;//文本中的内容
	private int notepad_int_startpos = 0;//查找的开始位置
	private int notepad_int_length = 0;
	private int notepad_int_find_result = 0;//查找的结果
	
	public Notepad_LookFor(String title,Notepad_newFile nf){//构造函数
	       this.setTitle(title);
	       notepad_newFile_resource = nf;
	       init_internalFrame();
	       show_internalFrame();
	}
	
	private void init_internalFrame(){//初始化
		//生成控件
        
		notepad_label_look_message = new JLabel("查找内容:");
		notepad_jtxtField_look_message = new JTextField(100);
		notepad_jbutton_look_next = new JButton("查找下一个");
		notepad_jbutton_cansole = new JButton("取消");
		notepad_buttonGroup_look_direction = new ButtonGroup();
		notepad_jradiobutton_look_up = new JRadioButton("向上");
		notepad_jradiobutton_look_low = new JRadioButton("向下");
		notepad_checkbox_up_low = new JCheckBox("区分大小写");
		notepad_jpanel_panelframe = new JPanel();
		notepad_jpanel_panelradio = new JPanel();
		
		//初始化控件
		notepad_jpanel_panelframe.setLayout(null);
		notepad_checkbox_up_low.setSelected(true);
		notepad_jradiobutton_look_low.setSelected(true);
		notepad_buttonGroup_look_direction.add(notepad_jradiobutton_look_up);
		notepad_buttonGroup_look_direction.add(notepad_jradiobutton_look_low);
		//notepad_jbutton_look_next.setEnabled(false);
		//添加监听
		notepad_jbutton_look_next.addActionListener(this);
		notepad_jbutton_cansole.addActionListener(this);
		
		
		//设置控件的大小和位置
		notepad_label_look_message.setBounds(10,10,80,25);
		notepad_jtxtField_look_message.setBounds(100,10,100,25);
		notepad_jbutton_look_next.setBounds(220,10,120,25);
		notepad_checkbox_up_low.setBounds(10,65,100,25);
		notepad_jradiobutton_look_up.setBounds(100,45,50,25);
		notepad_jradiobutton_look_low.setBounds(160,45,50,25);
		notepad_jbutton_cansole.setBounds(220,45,120,25);
		
		//添加控件
		notepad_jpanel_panelframe.add(notepad_label_look_message);
		notepad_jpanel_panelframe.add(notepad_jtxtField_look_message);
		notepad_jpanel_panelframe.add(notepad_jbutton_look_next);
		notepad_jpanel_panelframe.add(notepad_checkbox_up_low);
		notepad_jpanel_panelframe.add(notepad_jradiobutton_look_up);
		notepad_jpanel_panelframe.add(notepad_jradiobutton_look_low);
		notepad_jpanel_panelframe.add(notepad_jbutton_cansole);
		this.getContentPane().add(notepad_jpanel_panelframe);
		
	}
	
	private void show_internalFrame(){
		this.setLocation(50,50);
		this.setSize(360,150);
		this.setResizable(false);
		this.setVisible(true);
		//this.show();
	}
	private void notepad_void_deal_looklow_next(){//向下查找区分大小写
		String notepad_string_look_message = notepad_jtxtField_look_message.getText();
		 String notepad_string_source = notepad_newFile_resource.jta.getText();
		 
		 try{
			 if(notepad_newFile_resource.jta.getSelectedText() == null)
				 notepad_int_startpos = 0;
			 else
				 notepad_int_startpos = notepad_newFile_resource.jta.getSelectionStart() + 1;
				if(notepad_int_find_result>=0) { 
					notepad_int_find_result = notepad_string_source.indexOf(notepad_string_look_message,notepad_int_startpos); 
					
					notepad_int_length = notepad_string_look_message.length(); 
					notepad_int_startpos = notepad_int_find_result + notepad_int_length; 
					if(notepad_int_find_result == -1) { 
						JOptionPane.showMessageDialog(null, "没有你要查找的内容", "查找结果",1); 
						notepad_int_find_result = 0; 
						notepad_int_startpos = 0; 
					}
					
					notepad_newFile_resource.jta.select(notepad_int_find_result,notepad_int_startpos);
					
				}
		 }catch(IllegalArgumentException e ){
				e.printStackTrace();
			}
				
	}
	private void notepad_void_deal_looklow_ignore(){//向下不区分大小写
		String notepad_string_look_message = notepad_jtxtField_look_message.getText();
		 String notepad_string_source = notepad_newFile_resource.jta.getText();
		 try{
			 if(notepad_newFile_resource.jta.getSelectedText() == null)
				 notepad_int_startpos = 0;
			 else
				 notepad_int_startpos = notepad_newFile_resource.jta.getSelectionStart() + 1;
			 notepad_string_look_message = notepad_string_look_message.toLowerCase();
			 notepad_string_source = notepad_string_source.toLowerCase();
				if(notepad_int_find_result>=0) { 
					notepad_int_find_result = notepad_string_source.indexOf(notepad_string_look_message,notepad_int_startpos); 
					
					notepad_int_length = notepad_string_look_message.length(); 
					notepad_int_startpos = notepad_int_find_result + notepad_int_length; 
					if(notepad_int_find_result == -1) { 
						JOptionPane.showMessageDialog(null, "没有你要查找的内容", "查找结果",1); 
						notepad_int_find_result = 0; 
						notepad_int_startpos = 0; 
					}
					
					notepad_newFile_resource.jta.select(notepad_int_find_result,notepad_int_startpos);
					
				}
		 }catch(IllegalArgumentException e ){
				e.printStackTrace();
			}
		
	}
	private void notepad_void_deal_lookup_next(){//向上查找区分大小写
		String notepad_string_look_message = notepad_jtxtField_look_message.getText();
		String notepad_string_source = notepad_newFile_resource.jta.getText();
		try{
			if(notepad_newFile_resource.jta.getSelectedText() == null)
				notepad_string_source = notepad_string_source;
			else{
				int notepad_int_start = notepad_newFile_resource.jta.getSelectionStart();
				notepad_string_source = notepad_string_source.substring(0,notepad_int_start);
				
			}
			if(notepad_int_find_result >= 0) { 
			notepad_int_find_result = notepad_string_source.lastIndexOf(notepad_string_look_message); 
				
			notepad_int_length = notepad_string_look_message.length(); 
			notepad_int_startpos = notepad_int_find_result + notepad_int_length; 
			if(notepad_int_find_result == -1) { 
				JOptionPane.showMessageDialog(null, "没有你要查找的内容", "查找结果",1); 
				notepad_int_find_result = 0; 
				notepad_int_startpos = 0; 
			}
				notepad_newFile_resource.jta.select(notepad_int_find_result,notepad_int_startpos);
			}
			}catch(IllegalArgumentException e ){
				e.printStackTrace();
			}
		
		
	}
	private void notepad_void_deal_lookup_ignore(){//向上查找不区分大小写
		String notepad_string_look_message = notepad_jtxtField_look_message.getText();
		String notepad_string_source = notepad_newFile_resource.jta.getText();
		try{
			if(notepad_newFile_resource.jta.getSelectedText() == null)
				notepad_string_source = notepad_string_source;
			else{
				int notepad_int_start = notepad_newFile_resource.jta.getSelectionStart();
				notepad_string_source = notepad_string_source.substring(0,notepad_int_start);
				
			}
			notepad_string_look_message = notepad_string_look_message.toLowerCase();
			notepad_string_source = notepad_string_source.toLowerCase();
			if(notepad_int_find_result >= 0) { 
			notepad_int_find_result = notepad_string_source.lastIndexOf(notepad_string_look_message); 
				
			notepad_int_length = notepad_string_look_message.length(); 
			notepad_int_startpos = notepad_int_find_result + notepad_int_length; 
			if(notepad_int_find_result == -1) { 
				JOptionPane.showMessageDialog(null, "没有你要查找的内容", "查找结果",1); 
				notepad_int_find_result = 0; 
				notepad_int_startpos = 0; 
			}
				notepad_newFile_resource.jta.select(notepad_int_find_result,notepad_int_startpos);
			}
			}catch(IllegalArgumentException e ){
				e.printStackTrace();
			}
	}
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource() == notepad_jbutton_look_next){
			if(notepad_jradiobutton_look_low.isSelected()){//向下查找
				if(notepad_checkbox_up_low.isSelected())
					notepad_void_deal_looklow_next();
				else
					notepad_void_deal_looklow_ignore();
			}
			if(notepad_jradiobutton_look_up.isSelected()){
				if(notepad_checkbox_up_low.isSelected())
					notepad_void_deal_lookup_next();
				else
					notepad_void_deal_lookup_ignore();
			}
		}
		if(e.getSource() == notepad_jbutton_cansole)
			this.dispose();
	
	}

}

⌨️ 快捷键说明

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