package it.tqm.view;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class AdapterView extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
JPanel jp4 = new JPanel();
JFileChooser jfc;
JButton jbGo;
JLabel jlbDir, jlbSrc, jlbDst;
JTextField jtfDir, jtfSrc, jtfDst;
File directory;
int count = 0;
public AdapterView() {
this.setLayout(new GridLayout(4, 1));
jlbDir = new JLabel("dir select:");
jlbSrc = new JLabel("srcSuffix:");
jlbDst = new JLabel("dstSuffix:");
jbGo = new JButton("GO!");
jtfSrc = new JTextField(15);
jtfDst = new JTextField(15);
jtfDir = new JTextField(15);
jtfDir.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
directory = getDirectory();
jtfDir.setText("" + directory);
}
});
jbGo.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
String srcSuffix = jtfSrc.getText().trim();
String dstSuffix = jtfDst.getText().trim();
if (jtfDir.getText().trim().equals("") || srcSuffix.equals("")
|| dstSuffix.equals("")) {
JOptionPane.showMessageDialog(null, "转换条件不充分");
return;
}
String rexp1 ="^[A-Za-z]+$", rexp2 = "/.[a-zA-Z]+$";
if (AdapterView.isPattern(rexp1, srcSuffix)
&& AdapterView.isPattern(rexp1, dstSuffix)
|| AdapterView.isPattern(rexp2, srcSuffix)
&& AdapterView.isPattern(rexp2, dstSuffix))
convert(directory, jtfSrc.getText(), jtfDst.getText());
JOptionPane.showMessageDialog(null, "Done");
}
});
jp1.add(jlbDir);
jp1.add(jtfDir);
jp2.add(jlbSrc);
jp2.add(jtfSrc);
jp3.add(jlbDst);
jp3.add(jtfDst);
jp4.add(jbGo);
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.add(jp4);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static boolean isPattern(String rexp, String s) {
Pattern p = Pattern.compile(rexp);
Matcher m = p.matcher(s);
if (m.matches()) {
return true;
} else {
return false;
}
}
private void convert(File dir, String src, String dst) {
File[] fs = dir.listFiles();
for (int i = 0; i < fs.length; i++) {
if (fs[i].isHidden()) {
continue;
}
if (fs[i].isDirectory()) {
convert(fs[i], src, dst);
} else {
try {
String fileName = fs[i].getName();
int lastIndexOf = fileName.lastIndexOf(".");
if (lastIndexOf == -1)
continue;
if (fileName.substring(lastIndexOf + 1).equals(src)) {
fs[i].renameTo(new File(fs[i].getParent() + "/"
+ fileName.substring(0, lastIndexOf + 1) + dst));
}
if (fileName.substring(lastIndexOf).equals(src)) {
fs[i].renameTo(new File(fs[i].getParent() + "/"
+ fileName.substring(0, lastIndexOf) + dst));
}
System.out.println(count++);
} catch (Exception e) {
e.printStackTrace();
System.out.println(fs[i].getParent() + fs[i].getName());
}
}
}
}
protected File getDirectory() {
JFileChooser jFileChooser = new JFileChooser();
jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jFileChooser.showOpenDialog(null);
return jFileChooser.getSelectedFile();
}
public static void main(String[] args) {
new AdapterView();
}
}
AdapterView
最新推荐文章于 2024-04-08 12:25:02 发布