黑马程序员技术交流社区
标题:
代码纠错
[打印本页]
作者:
kongdun1991
时间:
2016-6-2 23:03
标题:
代码纠错
public class Demo {
public static void main(String[] args) {
new SearchFrame().setVisible(true);
}
}
[code]import java.awt.Dimension;
import java.awt.Font;
import java.awt.TextArea;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class SearchFrame extends JFrame {
private JTextField dirTxt = new JTextField();// 目录文本框
private JTextField keyTxt = new JTextField();// 关键字文本框
private TextArea resultArea = new TextArea();// 搜索结果文本域
private JLabel lab3 = new JLabel("文件: 0个 目录: 0个");
//定义文件和目录统计数
private int fileCount = 0;
private int dirCount = 0;
// 构造方法
public SearchFrame() {
super();
// 初始化窗体
init();
// 添加组件
addComponent();
}
private void addComponent() {
// 添加标签--目录
JLabel lab1 = new JLabel("目录:");
lab1.setBounds(30, 20, 50, 30);
lab1.setFont(new Font("楷体", Font.BOLD, 16));
this.add(lab1);
// 添加目录文本框
dirTxt.setBounds(80, 20, 250, 30);
this.add(dirTxt);
// 添加标签--关键字
JLabel lab2 = new JLabel("关键字:");
lab2.setBounds(350, 20, 70, 30);
lab2.setFont(new Font("楷体", Font.BOLD, 16));
this.add(lab2);
// 添加关键字文本框
keyTxt.setBounds(420, 20, 80, 30);
this.add(keyTxt);
// 添加搜索按钮
JButton but = new JButton("搜索");
but.setBounds(520, 20, 80, 30);
but.setFont(new Font("楷体", Font.BOLD, 18));
but.addActionListener(new ActionListener() {// 实现搜索功能
@Override
public void actionPerformed(ActionEvent e) {
//重置计数
fileCount = 0;
dirCount = 0;
resultArea.setText(null);
// 调用搜索方法
searchFile();
lab3.setText("文件: " +fileCount + "个 目录: " + dirCount + "个");
return;
}
});
this.add(but);
// 添加文本域
resultArea.setBounds(30, 80, 580, 300);
resultArea.setFont(new Font("楷体",Font.BOLD,12));
this.add(resultArea);
//添加标签--统计结果
lab3.setBounds(30, 400, 250, 30);
lab3.setFont(new Font("楷体",Font.BOLD,16));
this.add(lab3);
}
// 搜索方法
protected void searchFile() {
// 判断文本框不为空
if (this.dirTxt.getText().trim().length() == 0) {
JOptionPane.showMessageDialog(this, "请输入要搜索的目录!");
return;
}
if (this.keyTxt.getText().trim().length() == 0) {
JOptionPane.showMessageDialog(this, "你请输入关键字!");
return;
}
// 判断目录是否存在
File file = new File(this.dirTxt.getText());
if (!file.exists()||!file.isDirectory()) {
JOptionPane.showMessageDialog(this, "您输入的目录不存在!");
return;
}
// 遍历文件
printFile(file);
}
// 遍历文件
private void printFile(File file) {
File[] fileArray = file.listFiles();
if (fileArray != null) {
for (File f : fileArray) {
if (f.isFile() && f.getName().contains(this.keyTxt.getText())) {
// 显示文件路径到搜索结果文本域中
this.fileCount++;
if(this.resultArea.getText().length() != 0){
this.resultArea.append("\r\n");
}
this.resultArea.append(f.getAbsolutePath());
} else if (f.isDirectory()) {
this.dirCount++;
printFile(f);
}
}
}
}
// 初始化窗体
private void init() {
// 定义标题
this.setTitle("文件搜索器");
// 窗体大小
this.setSize(650, 500);
// 窗体居中
Toolkit kit = this.getToolkit();
Dimension screenSize = kit.getScreenSize();
int x = (screenSize.width - this.getWidth()) / 2;
int y = (screenSize.height - this.getHeight()) / 2;
this.setLocation(x, y);
// 实现关闭行为
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置默认布局格式
this.setLayout(null);
}
}
复制代码
[/code]
上述代码是为了实现文件搜索功能,但有错误,希望大神帮忙找出
作者:
蓝色风信子
时间:
2016-6-2 23:16
大神啊,完全看不懂啊,学习学习.
作者:
sunnyday
时间:
2016-6-2 23:26
满满的都是心塞啊,大声你是怎么敲出来的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2