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

📄 my.java

📁 采用java swing编写
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
import java.awt.Window.*;
import java.nio.*;
import java.nio.channels.*;

class WordFinder extends JFrame implements ActionListener,DocumentListener,KeyListener
{   
    public static String ss;
   String t=null;
	JMenuBar menubar;
	JMenu menu;
	JMenuItem open,exit;
	Button clear;
	JTextField textfield;
    JScrollPane scrollpane;
	JScrollBar scrollbar;

	JLabel label,label2;
	Box basebox,box1,box2,box3,box4;
	JPanel panel,panel2,panel3;
    
    JFileChooser chooser;
	JTextArea area;
	FileInputStream readfile;
	public WordFinder()
	{   
	    
		super("Word Finder");
		chooser=new JFileChooser();
        scrollbar=new JScrollBar();
		label=new JLabel("Find:");
		label2=new JLabel("");
		textfield=new JTextField(20);
		area=new JTextArea(40,15);
       
	    textfield.getDocument().addDocumentListener(this);
	    textfield.addKeyListener(this);
		clear=new Button("Clear");
		clear.addActionListener(this);
		
		panel=new JPanel();
		panel2=new JPanel();
		panel3=new JPanel();
		
	
	    scrollpane=new JScrollPane(area );
	    scrollpane.setAutoscrolls(true);
	    scrollpane.setHorizontalScrollBar(null);
	   
	    panel2.add(label,BorderLayout.NORTH);
		
		
		box2=Box.createVerticalBox();
		box2.add(textfield);
	    box2.add(Box.createVerticalStrut(2));
		box2.add(label2);
		box2.add(Box.createVerticalStrut(2));
		box2.add(scrollpane);
		
	
		   
	    panel3.add(clear,BorderLayout.NORTH);
			
		add(panel2,BorderLayout.WEST);

        add(box2,BorderLayout.CENTER);

		add(panel3,BorderLayout.EAST);
		
		setBounds(200,200,400,300);
		open=new JMenuItem("Open");
		open.addActionListener(this);
		exit=new JMenuItem("Exit");
		exit.addActionListener(this);
		menu=new JMenu("File");
		menu.add(open);
		menu.add(exit);
		menubar=new JMenuBar();
		menubar.add(menu);
		setJMenuBar(menubar);
		
	
	
        setVisible(true);
        setResizable(true);
        validate();
        
       addWindowListener(new WindowAdapter(){
        	public void windowClosing(WindowEvent e){
        		System.exit(0);
        	}
        });
        try
   	  {   
   	            label2.setText("45391 words total");
   		        FileReader   file_read = new   FileReader("words.txt");   
                BufferedReader   buffer_read = new   BufferedReader(file_read);   
                String   str = buffer_read.readLine();  
                String strs=null;
                String   str_create = new   String();   
                  
                 char[] s=new char[500000];
                      
                  buffer_read.read(s); 
                  ss=new String(s);
                  area.setText(ss);
                               
   	     file_read.close();
   	     buffer_read.close();  
   	      area.setCaretPosition(0);
   		
   	   }
    	catch(Exception e){ }
       t=area.getText();
       }
       
       public void actionPerformed(ActionEvent e)
       {  
       	if(e.getSource()==clear)
       	{ 
       	   textfield.setText(null);
       	   label2.setText("45391 words total");
       	   area.setText(t);
       	    area.setCaretPosition(0);
     
        }
        else if(e.getSource()==exit)
           System.exit(0);
           else  if(e.getSource()==open)
           {
           	int state=chooser.showOpenDialog(null);
           	File file=chooser.getSelectedFile();
           	if(file!=null&&state==JFileChooser.APPROVE_OPTION)
           	{
           		try{
           			readfile=new FileInputStream(file);
           		}
           		catch(IOException ee){
           		}
           		try{ FileReader   file_read   =   new   FileReader(file);  
              	BufferedReader   buffer_read = new  BufferedReader(file_read);   
                 
                String strs=null;
                String   str_create   =   new   String();   
                  
                 char[] s=new char[500000];
                      
                  buffer_read.read(s); 
                  ss=new String(s);
                  area.setText(ss);
                                        
   	              file_read.close();
   	              buffer_read.close();  
   	              area.setCaretPosition(0);
           		}
           		catch(IOException el){
           	   ;
           		}
           	}
           }

   	   
       }
 ////////////////////////////////////////////////////////////////////
       public void keyReleased(KeyEvent e){
       }
       public void keyTyped(KeyEvent e){
       }
       
       public void keyPressed(KeyEvent e)               
       {    
       	   if(e.getKeyCode()==KeyEvent.VK_BACK_SPACE)
       	   {  
       	      int  s=textfield.getText().length();
       	      
       	     
                         

       	      if(s==1||s==0)
       	      {
       	      	area.setText(ss);
       	      	label2.setText("45391 words total");
       	      	 area.setCaretPosition(0);
       	      }
       	      else
       	      {  
       	        int a,b=0;
       	      	String s3=textfield.getText().substring(0,s-1);
       	      	 StringBuffer str3=new  StringBuffer();
       	      	 StringTokenizer fenxi=new StringTokenizer(ss);
       	      	  int count=fenxi.countTokens();
       	      	  while(fenxi.hasMoreTokens())
   	          {  
   	             
   	          	String str=fenxi.nextToken();
   	         	a=str.indexOf(s3);
   	        	if(a!=-1)
   	     	   { b++;str3.append(str+'\n');}     
   	          }
   	            label2.setText(String.valueOf(b)+" words containing "+"'"+textfield.getText()+"'");
   	            area.setText(new String(str3));
   	             area.setCaretPosition(0);
       	      }
       	   }
       }
 ////////////////////////////////////////////////////////////////////
        public void removeUpdate(DocumentEvent e) { }
        public void changedUpdate(DocumentEvent e) { }
        public void insertUpdate(DocumentEvent e)
        { 
         int a,b=0;
   	     String s=area.getText(); 
   	      String str2="";
   	      StringBuffer str3=new  StringBuffer();
   	     StringTokenizer fenxi=new StringTokenizer(s);
   	     int count=fenxi.countTokens();
   	     while(fenxi.hasMoreTokens())
   	     {  
   	             
   	     	String str=fenxi.nextToken();
   	     	a=str.indexOf(textfield.getText());
   	     	if(a!=-1)
   	     	{ b++;str3.append(str+'\n');}     
   	     }
   	     String g1=area.getText();
   	     if(b==0)	
   	     {
   	     	label2.setText(String.valueOf(b)+" words containing "+"'"+textfield.getText()+"'");
   	   
   	        b--;
   	        area.setText(null);
   	     } 
   	     else 
   	     {  
   	        if(b>0)
   	        {label2.setText(String.valueOf(b)+" words containing "+"'"+textfield.getText()+"'");
   	        area.setText(new String(str3));
   	         area.setCaretPosition(0);

   	   
   	         }
   	        else
   	       { area.setText(g1);
   	        label2.setText(String.valueOf(b)+" words containing "+"'"+textfield.getText()+"'");
   	   
   	         }
   	     }
    	}
/////////////////////////////////////////////////////////
}
public class My
{
	public static void main(String args[])
	{
		new WordFinder();
	}
}


⌨️ 快捷键说明

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