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

📄 finddialog.java

📁 自己写的java 的记事本,内有源码.和jar 文件
💻 JAVA
字号:
package note;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;


/*
 * findDialog.java
 *
 * Created on 2008年4月23日, 上午2:39
 */



/**
 *
 * @author  Xium
 */
public class findDialog extends JFrame {
    
    /**
	 * 
	 */
	private static final long serialVersionUID = 4452566304104956834L;
	/** 此方法创建一个findDialog  */
    public findDialog() {
        initComponents();
    }
    /****************本方法实现了 finddialog 的界面. *********************/
    private void initComponents() {

        buttonGroup1 = new ButtonGroup();  //按钮组,将单选按钮添加到按钮组内 可以实现单选
        jbt_find = new JButton();//查找按钮
        jTextField_text = new JTextField();// 查找文本框
         jcb_box = new javax.swing.JCheckBox();//多选框(是否区分大小写)
        jbt_close = new javax.swing.JButton();//关闭按钮
        jrb_find_up = new JRadioButton();//向上查找 (单选)
        jrb_find_down = new JRadioButton();//向下查找(单选)
        /**********将单选按钮添加到按钮组内 可以实现单选**************/
        buttonGroup1.add(jrb_find_down);
        buttonGroup1.add(jrb_find_up);

        setDefaultCloseOperation(findDialog.DISPOSE_ON_CLOSE);  
        setTitle("查找");
        setBackground(new Color(204, 204, 255));
        setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

        jbt_find.setBackground(new Color(204, 204, 255));
        jbt_find.setText("查找下一个");
        jbt_find.setBorderPainted(false);
        /****************查找按钮事件监听*********************/
        jbt_find.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jbt_findActionPerformed(evt);
            }
        });
        /****************查找文本框的事件监听*********************/
        jTextField_text.addCaretListener(new CaretListener() {
            public void caretUpdate(CaretEvent evt) {
                jTextCaretUpdate(evt);
            }
        });

        jcb_box.setBackground(new Color(204, 204, 255));
        jcb_box.setText("大小写敏感");
        jcb_box.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jcb_boxActionPerformed(evt);
            }
        });

        jbt_close.setBackground(new Color(204, 204, 255));
        jbt_close.setText("取消");
        jbt_close.setBorderPainted(false);
        /****************取消按钮事件监听*********************/
        jbt_close.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jbt_closeActionPerformed(evt);
            }
        });
        jrb_find_down.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent evt) {
        		jrb_findActionPerformed(evt);
        	}
        });
        jrb_find_up.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent evt) {
        		jrb_findActionPerformed(evt);
        	}
        });
        
        
        
        
        

        jrb_find_up.setBackground(new Color(204, 204, 255));
        jrb_find_up.setText("向上");

        jrb_find_down.setBackground(new Color(204, 204, 255));
        jrb_find_down.setText("向下");

       GroupLayout layout = new GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent(jTextField_text, GroupLayout.DEFAULT_SIZE, 349, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addGap(2, 2, 2)
                .addComponent(jcb_box, GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jbt_find, GroupLayout.DEFAULT_SIZE, 95, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jrb_find_up, GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
                .addGap(4, 4, 4)
                .addComponent(jrb_find_down, GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jbt_close, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jTextField_text, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(jbt_find)
                    .addComponent(jcb_box)
                    .addComponent(jrb_find_down)
                    .addComponent(jbt_close)
                    .addComponent(jrb_find_up))
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jrb_find_down, jrb_find_up, jbt_close, jbt_find, jcb_box});

        pack();
    }// intComponents 方法结束
    /****************区分大小写按钮事件处理*********************/
    private void jcb_boxActionPerformed(java.awt.event.ActionEvent evt) {                                        
    }                                       
    /****************取消按钮事件处理*********************/
    private void jbt_closeActionPerformed(java.awt.event.ActionEvent evt) {                                          
    	setVisible(false);
       
}                                         
    /****************查找按钮事件处理
     * 在此处实现了 *****查找的各个功能****************/
    public void jbt_findActionPerformed(java.awt.event.ActionEvent evt) {                                         
    	 String str_find=jTextField_text.getText().trim();  //从输入查找文本框中获取文本
         int str_find_len=str_find.length(); //计算输入文本的长度
         String str_jtextarea=Note.fileArea.getText(); //获取文本区中的文本
         String str_up_find;     //设置为向上查找的字符串
         int str_first_index; //设置为向下查找的初始值
         
         if(jcb_box.isSelected()) //判断是否区分大小写,如果选择区分大小写则执行
         {
             /************** 向上查找 ********************/
          
        	 if(jrb_find_up.isSelected())
             {
        		 if(Note.fileArea.getCaretPosition() == 0){
        			 jbt_find.setEnabled(false);
        		 }
        		 else {
                 str_up_find=Note.fileArea.getText().substring(0,Note.fileArea.getCaretPosition()-str_find_len);
                 int str_last_index=str_up_find.lastIndexOf(str_find);
                 if(str_last_index!=-1)
                 {
                     Note.fileArea.select(str_last_index,str_last_index+str_find_len);
                     str_up_find=str_up_find.substring(0,str_last_index);

                 }
                 else
                 {
                     JOptionPane.showMessageDialog(null,"找不到“ "+str_find+" ”(查找完毕)","记事本",JOptionPane.QUESTION_MESSAGE);
                     jTextField_text.selectAll();
                     jTextField_text.requestFocus(true);
                     jbt_find.setEnabled(false);
                 }}
            	 
             }
             /************** 向下查找 ********************/
             if(jrb_find_down.isSelected())
             {
                 str_first_index=Note.fileArea.getCaretPosition();
                 int str_find_index=str_jtextarea.indexOf(str_find,str_first_index); //查找字符串出现的位置,如果没找到则返回-1

                 if(str_find_index==-1)
                 {
                     JOptionPane.showMessageDialog(null,"找不到“ "+str_find+" ”(查找完毕)","记事本",JOptionPane.QUESTION_MESSAGE);
                     jTextField_text.selectAll();
                     jTextField_text.requestFocus(true);
                     jbt_find.setEnabled(false);
                 }
                 else
                 {
                     Note.fileArea.select(str_find_index,str_find_index+str_find_len);   //将查找到的字符反选
                     str_first_index=str_find_index+str_find_len;        //改变查找的初始位置
                 }
              }
         }
         else    /***不区分大小写查找****说明:先将文本区中的文本和要查找的字符串转换成同一小写字符串,再进行查找操作****/
         {
             /*将文本区中的字母文本转换为小写字母文本—— 开始*/
             char a[]=str_jtextarea.toCharArray();
             for(int i=0;i<a.length;i++)
             {
                 if(Character.isUpperCase(a[i]))
                 {
                     a[i]=Character.toLowerCase(a[i]);
                 }
             }
             str_jtextarea=new String(a);
             /*将文本区中的字母文本转换为小写字母文本—— 结束*/

             /*将查找字符串中的字母文本转换为小写字母文本—— 开始*/
             char b[]=str_find.toCharArray();
             for(int j=0;j<b.length;j++)
             {
                 if(Character.isUpperCase(b[j]))
                 {
                     b[j]=Character.toLowerCase(b[j]);
                 }
             }
             str_find=new String(b);
             /*将查找字符串中的字母文本转换为小写字母文本—— 结束*/
             if(jrb_find_up.isSelected())
             { 
            	 if(Note.fileArea.getCaretPosition() == 0){
            	 jbt_find.setEnabled(false);
             }
            	 else {
                 str_up_find=Note.fileArea.getText().substring(0,Note.fileArea.getCaretPosition()-str_find_len);
                 
                 char c[]=str_up_find.toCharArray();
                 for(int k=0;k<c.length;k++)
                 {
                     if(Character.isUpperCase(c[k]))
                     {
                         c[k]=Character.toLowerCase(c[k]);
                     }
                 }
                 
                 str_up_find=new String(c);
                 int str_last_index=str_up_find.lastIndexOf(str_find);
                 if(str_last_index!=-1)
                 {
                     Note.fileArea.select(str_last_index,str_last_index+str_find_len);
                     str_up_find=str_up_find.substring(0,str_last_index);

                 }
                 else
                 {
                     JOptionPane.showMessageDialog(null,"找不到“ "+str_find+" ”(查找完毕)","记事本",JOptionPane.QUESTION_MESSAGE);
                     jTextField_text.selectAll();
                     jTextField_text.requestFocus(true);
                     jbt_find.setEnabled(false);
                 }}
              }
             /*向下查找*/
             if(jrb_find_down.isSelected())
             {
                 str_first_index=Note.fileArea.getCaretPosition();
                 int str_find_index=str_jtextarea.indexOf(str_find,str_first_index); //查找字符串出现的位置,如果没找到则返回-1

                 if(str_find_index==-1)
                 {
                     JOptionPane.showMessageDialog(null,"找不到“ "+str_find+" ”(查找完毕)","记事本",JOptionPane.QUESTION_MESSAGE);
                     jTextField_text.selectAll();
                     jTextField_text.requestFocus(true);
                     jbt_find.setEnabled(false);
                 }
                 else
                 {
                     Note.fileArea.select(str_find_index,str_find_index+str_find_len);   //将查找到的字符反选
                     str_first_index=str_find_index+str_find_len;        //改变查找的初始位置
                 }
              }
         }
         
     }//GEN-LAST:event_jButton_Find_NextActionPerformed
        
  
    private void jTextCaretUpdate(javax.swing.event.CaretEvent evt) {                                  
    	jbt_find.setEnabled(true);
    	jbt_find.setFocusable(true);
      
    }                                 
    private void jrb_findActionPerformed(ActionEvent evt) {
    	jbt_find.setEnabled(true);
    	jbt_find.setFocusable(true);
		
	}
    /**
     * @param args the command line arguments
     */
   
    
    // Variables declaration - do not modify
    private ButtonGroup buttonGroup1;
    private JRadioButton jrb_find_down;
    private JRadioButton jrb_find_up;
    private JTextField jTextField_text;
    private JButton jbt_close;
    private JButton jbt_find;
    private JCheckBox jcb_box;
   
	
    
}

⌨️ 快捷键说明

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