📄 filebrowser.java
字号:
import java.awt.*;
import java.io.*;
import java.awt.event.*;
public class FileBrowser extends Frame implements ActionListener,ItemListener{
static TextField tf=new TextField(20);
static List l=new List(500);
static Choice c=new Choice();
static Label path=new Label("路径:");
static Label count=new Label("统计数量",Label.CENTER);
static Label isfield =new Label("是否为文件:");
static Label ishidden =new Label("是否为隐藏文件:");
static Label lastmodified =new Label("最后修改时间:");
static Label length =new Label("文件大小:");
static Label labelisfield =new Label("");
static Label labelishidden =new Label("");
static Label labellastmodified =new Label("");
static Label labellength =new Label("");
Button b=new Button("显示全部结果");
Button b1=new Button("后退");
Panel p1=new Panel();
Panel p2=new Panel(new GridLayout(2,1));
Panel p3=new Panel(new BorderLayout());
Panel p4=new Panel(new GridLayout(4,2));
Panel p5=new Panel(new GridLayout(1,2));
static String filename;
static int a=0;
static Frame f=new Frame("查询结果");
public FileBrowser(String title){
super(title);
p1.add(path); p1.add(tf);
p2.add(count); p2.add(p5);
p5.add(b); p5.add(b1);
p3.add(c,BorderLayout.NORTH);
p3.add(p4,BorderLayout.CENTER);
p4.add(isfield); p4.add(labelisfield); p4.add(ishidden); p4.add(labelishidden);
p4.add(lastmodified); p4.add(labellastmodified); p4.add(length); p4.add(labellength);
p1.setBackground(new Color(200,200,200));
p2.setBackground(new Color(200,200,200));
p4.setBackground(new Color(200,200,200));
add(p1,BorderLayout.NORTH);
add(p3,BorderLayout.CENTER);
add(p2,BorderLayout.SOUTH);
tf.addTextListener(new TextHandler());
c.addItemListener(this);
b.addActionListener(this);
b1.addActionListener(this);
l.addItemListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
FileBrowser.this.dispose();
}
});
f.add(l);
f.setSize(250,300);
f.setVisible(false);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
FileBrowser.f.dispose();
}
});
}
public static void RestoreData(){
labelisfield.setText("");
labelishidden.setText("");
labellastmodified.setText("");
labellength.setText("");
c.removeAll();
l.removeAll();
}
public void actionPerformed(ActionEvent e){
String s=e.getActionCommand();
if(s.equals("显示全部结果")){
if(a==0){
a=1;
f.setVisible(true);
}
else{
a=0;
f.setVisible(false);
}
}
if(s.equals("后退")){
if(tf.getText().equals("")) count.setText("路径为空!");
else if(!FindFile.f.getName().equals("")){
filename=tf.getText().substring(0,tf.getText().lastIndexOf("/"));
tf.setText(filename);
RestoreData();
FindFile.setFile(filename);
if(FindFile.f.isDirectory()==false&&FindFile.f.isFile()==false){
count.setText("路径无效!请使用反斜杠!");
}
else{
if(FindFile.f.isFile()) FindFile.ifFile(FindFile.f);
else FindFile.ifDirectory(FindFile.f);
}
}
}
}
public void itemStateChanged(ItemEvent e){
if(e.getSource()==c){
filename=c.getSelectedItem();
tf.setText(c.getSelectedItem());
RestoreData();
FindFile.setFile(filename);
if(FindFile.f.isDirectory()==false&&FindFile.f.isFile()==false){
count.setText("路径无效!请使用反斜杠!");
}
else{
if(FindFile.f.isFile()) FindFile.ifFile(FindFile.f);
else FindFile.ifDirectory(FindFile.f);
}
}
if(e.getSource()==l){
filename=l.getSelectedItem();
tf.setText(l.getSelectedItem());
RestoreData();
FindFile.setFile(filename);
if(FindFile.f.isDirectory()==false&&FindFile.f.isFile()==false){
count.setText("路径无效!请使用反斜杠!");
}
else{
if(FindFile.f.isFile()) FindFile.ifFile(FindFile.f);
else FindFile.ifDirectory(FindFile.f);
}
}
}
public static void main(String[] args){
FileBrowser fb1=new FileBrowser("文件浏览器");
FindFile ob=new FindFile();
fb1.setSize(250,300);
fb1.setVisible(true);
fb1.setResizable(false);
}
class TextHandler implements TextListener{
public void textValueChanged(TextEvent e){
filename=tf.getText();
RestoreData();
FindFile.setFile(filename);
if(FindFile.f.isDirectory()==false&&FindFile.f.isFile()==false){
count.setText("路径无效!请使用反斜杠!");
}
else{
if(FindFile.f.isFile()) FindFile.ifFile(FindFile.f);
else FindFile.ifDirectory(FindFile.f);
}
}
}
}
class FindFile{
static File f;
static String fname;
public static void setFile(String s){
f=new File(s);
fname=s;
}
public static void ifFile(File f){
FileBrowser.c.add(f.getName());
FileBrowser.labelisfield.setText("是");
FileBrowser.l.add(fname);
if(f.isHidden()) FileBrowser.labelishidden.setText("是");
else FileBrowser.labelishidden.setText("否");
FileBrowser.labellastmodified.setText(String.valueOf(f.lastModified()));
FileBrowser.labellength.setText(String.valueOf(f.length())+"bytes");
FileBrowser.count.setText("共1个");
}
public static void ifDirectory(File f){
File[] fs=f.listFiles();
for(int i=0;i<fs.length;i++){
FileBrowser.l.add(fname+"/"+fs[i].getName());
FileBrowser.c.add(fname+"/"+fs[i].getName());
FileBrowser.labelisfield.setText("否");
FileBrowser.labelishidden.setText("否");
}
FileBrowser.count.setText("共"+String.valueOf(fs.length)+"个");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -