关于我们那些事

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【运行截图】

 

【核心代码】

  1 import java.awt.BorderLayout;
  2 
  3 import java.awt.EventQueue;
  4 
  5 import java.awt.GridLayout;
  6 
  7 import java.awt.event.ActionEvent;
  8 
  9 import java.awt.event.ActionListener;
 10 
 11 import java.io.File;
 12 
 13 import javax.swing.JButton;
 14 
 15 import javax.swing.JCheckBox;
 16 
 17 import javax.swing.JFileChooser;
 18 
 19 import javax.swing.JFrame;
 20 
 21 import javax.swing.JLabel;
 22 
 23 import javax.swing.JOptionPane;
 24 
 25 import javax.swing.JPanel;
 26 
 27 import javax.swing.JScrollPane;
 28 
 29 import javax.swing.JTextArea;
 30 
 31 import javax.swing.JTextField;
 32 
 33 import javax.swing.border.EmptyBorder;
 34 
 35 import java.awt.event.ItemListener;
 36 
 37 import java.awt.event.ItemEvent;
 38 
 39 public class RenameTool extends JFrame {
 40 /**
 41 
 42 *
 43 
 44 */
 45 
 46 private static final long serialVersionUID = 9068225199875097200L;
 47 
 48 private JPanel contentPane;
 49 
 50 private JTextField selectTextField;
 51 
 52 private JTextField beforeCutTextField;
 53 
 54 private JTextField afterCutTextField;
 55 
 56 private JTextField beforeReplaceTextField;
 57 
 58 private JTextField afterReplaceTextField;
 59 
 60 private JTextField fileTypeTextField;
 61 
 62 private JCheckBox choiceCheckBox;
 63 
 64 private JButton renameButton;
 65 
 66 private File[] selectFiles;
 67 
 68 private JTextArea textArea;
 69 
 70 /**
 71 
 72 * Launch the application.
 73 
 74 */
 75 
 76 public static void main(String[] args) {
 77 EventQueue.invokeLater(new Runnable() {
 78 public void run() {
 79 try {
 80 RenameTool frame = new RenameTool();
 81 
 82 frame.setVisible(true);
 83 
 84 } catch (Exception e) {
 85 e.printStackTrace();
 86 
 87 }
 88 
 89 }
 90 
 91 });
 92 
 93 }
 94 
 95 /**
 96 
 97 * Create the frame.
 98 
 99 */
100 
101 public RenameTool() {
102 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
103 
104 setBounds(100, 100, 450, 300);
105 
106 contentPane = new JPanel();
107 
108 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
109 
110 contentPane.setLayout(new BorderLayout(0, 0));
111 
112 setContentPane(contentPane);
113 
114 JPanel controlPanel = new JPanel();
115 
116 contentPane.add(controlPanel, BorderLayout.NORTH);
117 
118 controlPanel.setLayout(new GridLayout(4, 1, 5, 5));
119 
120 JPanel selectPanel = new JPanel();
121 
122 controlPanel.add(selectPanel);
123 
124 JLabel selectLabel = new JLabel("选择的文件夹:");
125 
126 selectPanel.add(selectLabel);
127 
128 selectTextField = new JTextField();
129 
130 selectPanel.add(selectTextField);
131 
132 selectTextField.setColumns(18);
133 
134 JButton selectButton = new JButton("选择文件夹");
135 
136 selectButton.addActionListener(new ActionListener() {
137 public void actionPerformed(ActionEvent e) {
138 do_selectButton_actionPerformed(e);
139 
140 }
141 
142 });
143 
144 selectPanel.add(selectButton);
145 
146 JPanel cutPanel = new JPanel();
147 
148 controlPanel.add(cutPanel);
149 
150 JLabel beforeCutLabel = new JLabel("截取前字符:");
151 
152 cutPanel.add(beforeCutLabel);
153 
154 beforeCutTextField = new JTextField();
155 
156 cutPanel.add(beforeCutTextField);
157 
158 beforeCutTextField.setColumns(10);
159 
160 JLabel afterCutLabel = new JLabel("截取后字符:");
161 
162 cutPanel.add(afterCutLabel);
163 
164 afterCutTextField = new JTextField();
165 
166 cutPanel.add(afterCutTextField);
167 
168 afterCutTextField.setColumns(10);
169 
170 JPanel replacePanel = new JPanel();
171 
172 controlPanel.add(replacePanel);
173 
174 JLabel beforeReplaceLabel = new JLabel("替换前字符:");
175 
176 replacePanel.add(beforeReplaceLabel);
177 
178 beforeReplaceTextField = new JTextField();
179 
180 replacePanel.add(beforeReplaceTextField);
181 
182 beforeReplaceTextField.setColumns(10);
183 
184 JLabel afterReplaceLabel = new JLabel("替换后字符:");
185 
186 replacePanel.add(afterReplaceLabel);
187 
188 afterReplaceTextField = new JTextField();
189 
190 replacePanel.add(afterReplaceTextField);
191 
192 afterReplaceTextField.setColumns(10);
193 
194 JPanel otherPanel = new JPanel();
195 
196 controlPanel.add(otherPanel);
197 
198 JLabel fileTypeLabel = new JLabel("文件类型:");
199 
200 otherPanel.add(fileTypeLabel);
201 
202 fileTypeTextField = new JTextField();
203 
204 otherPanel.add(fileTypeTextField);
205 
206 fileTypeTextField.setColumns(17);
207 
208 choiceCheckBox = new JCheckBox("预览");
209 
210 choiceCheckBox.addItemListener(new ItemListener() {
211 public void itemStateChanged(ItemEvent e) {
212 do_choiceCheckBox_itemStateChanged(e);
213 
214 }
215 
216 });
217 
218 otherPanel.add(choiceCheckBox);
219 
220 renameButton = new JButton("预览");
221 
222 renameButton.addActionListener(new ActionListener() {
223 public void actionPerformed(ActionEvent e) {
224 do_renameButton_actionPerformed(e);
225 
226 }
227 
228 });
229 
230 otherPanel.add(renameButton);
231 
232 JScrollPane scrollPane = new JScrollPane();
233 
234 contentPane.add(scrollPane, BorderLayout.CENTER);
235 
236 textArea = new JTextArea();
237 
238 scrollPane.setViewportView(textArea);
239 
240 }
241 
242 protected void do_selectButton_actionPerformed(ActionEvent e) {
243 JFileChooser chooser = new JFileChooser();
244 
245 chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
246 
247 chooser.setMultiSelectionEnabled(false);
248 
249 int result = chooser.showOpenDialog(this);
250 
251 if (result == JFileChooser.APPROVE_OPTION) {
252 File directory = chooser.getSelectedFile();
253 
254 selectTextField.setText(directory.getAbsolutePath());
255 
256 selectFiles = directory.listFiles();
257 
258 for (File selectFile : selectFiles) {
259 textArea.append(selectFile.getAbsolutePath() "\n\r");
260 
261 }
262 
263 }
264 
265 }
266 
267 protected void do_choiceCheckBox_itemStateChanged(ItemEvent e) {
268 if (choiceCheckBox.isSelected()) {
269 choiceCheckBox.setText("重命名");
270 
271 renameButton.setText("重命名");
272 
273 } else {
274 choiceCheckBox.setText("预览");
275 
276 renameButton.setText("预览");
277 
278 }
279 
280 }
281 
282 protected void do_renameButton_actionPerformed(ActionEvent e) {
283 String beforeCut = beforeCutTextField.getText();// 获得截取前字符串
284 
285 String afterCut = afterCutTextField.getText();// 获得截取后字符串
286 
287 String beforeReplace = beforeReplaceTextField.getText();// 获得替换前字符串
288 
289 String afterReplace = afterReplaceTextField.getText();// 获得替换后字符串
290 
291 String fileType = fileTypeTextField.getText();// 获得文件类型
292 
293 if (selectFiles == null) {
294 JOptionPane.showMessageDialog(this, "请选择文件所在文件夹!", "警告信息", JOptionPane.WARNING_MESSAGE);
295 
296 return;
297 
298 }
299 
300 if (selectFiles.length == 0) {
301 JOptionPane.showMessageDialog(this, "选中文件夹为空文件夹!", "警告信息", JOptionPane.WARNING_MESSAGE);
302 
303 return;
304 
305 }
306 
307 textArea.setText("");// 清空文本域中数据
308 
309 for (File selectFile : selectFiles) {
310 String fileName = selectFile.getName();// 获得文件名
311 
312 if (!beforeCut.isEmpty()) {
313 int beforeCutIndex = fileName.indexOf(beforeCut);// 获得截取前字符串索引位置
314 
315 fileName = fileName.substring(beforeCutIndex beforeCut.length());// 截取字符串
316 
317 }
318 
319 if (!afterCut.isEmpty()) {
320 int afterCutIndex = fileName.lastIndexOf(afterCut);// 获得截取后字符串索引位置
321 
322 fileName = fileName.substring(0, afterCutIndex);// 截取字符串
323 
324 if (fileType.isEmpty()) {
325 JOptionPane.showMessageDialog(this, "请输入文件类型!", "警告信息", JOptionPane.WARNING_MESSAGE);
326 
327 return;
328 
329 } else {
330 if (fileType.contains(".")) {// 判断用户输入的文件类型是否包括“.”
331 
332 fileName = fileName.concat(fileName);// 增加文件类型
333 
334 } else {
335 fileName = fileName.concat("." fileType);// 增加文件类型
336 
337 }
338 
339 }
340 
341 } else if (!fileType.isEmpty()) {
342 int fileTypeindex = fileName.lastIndexOf(".");// 获得文件类型索引位置
343 
344 fileName = fileName.substring(0, fileTypeindex);// 截取文件类型
345 
346 if (fileType.contains(".")) {// 判断用户输入的文件类型是否包括“.”
347 
348 fileName = fileName.concat(fileName);// 增加文件类型
349 
350 } else {
351 fileName = fileName.concat("." fileType);// 增加文件类型
352 
353 }
354 
355 }
356 
357 if (!(beforeReplace.isEmpty() && afterReplace.isEmpty())) {
358 fileName = fileName.replace(beforeReplace, afterReplace);// 替换字符串
359 
360 }
361 
362 fileName = selectFile.getParent() File.separator fileName;// 获得修改后的文件名
363 
364 if (choiceCheckBox.isSelected()) {
365 textArea.append(fileName "\n\r");// 在文本区中显示重命名的结果
366 
367 selectFile.renameTo(new File(fileName));// 重命名文件
368 
369 } else {
370 textArea.append(fileName "\n\r");// 重命名文件
371 
372 }
373 
374 }
375 
376 }
377 
378 }

 

posted on 2021-05-22 14:28  JAVA-WEB-MYSQL-笔记  阅读(403)  评论(0)    收藏  举报