📄 notepad_lookfor.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 + -