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