基本信息
源码名称:java入门136: 快速批量移动文件(示例源码)
源码大小:8.85KB
文件格式:.zip
开发语言:Java
更新时间:2019-07-12
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; 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.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; public class FileMoveTool extends JFrame { /** * */ private static final long serialVersionUID = 2023679170797741858L; private JPanel contentPane; private JTextField sourceTextField; private JTextField targetTextField; private File[] selectFiles; private File targetDirectory; private JTable table; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { FileMoveTool frame = new FileMoveTool(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public FileMoveTool() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.NORTH); panel.setLayout(new GridLayout(2, 1, 5, 5)); JPanel sourcePanel = new JPanel(); panel.add(sourcePanel); JLabel sourceLabel = new JLabel("选择源文件:"); sourcePanel.add(sourceLabel); sourceTextField = new JTextField(); sourcePanel.add(sourceTextField); sourceTextField.setColumns(17); JButton sourceButton = new JButton("选择文件"); sourceButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_sourceButton_actionPerformed(e); } }); sourcePanel.add(sourceButton); JPanel targetPanel = new JPanel(); panel.add(targetPanel); JLabel targetLabel = new JLabel("选择目标文件夹:"); targetPanel.add(targetLabel); targetTextField = new JTextField(); targetPanel.add(targetTextField); targetTextField.setColumns(14); JButton targetButton = new JButton("选择文件夹"); targetButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_targetButton_actionPerformed(e); } }); targetPanel.add(targetButton); JPanel buttonPanel = new JPanel(); contentPane.add(buttonPanel, BorderLayout.SOUTH); JButton moveButton = new JButton("移动"); moveButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_moveButton_actionPerformed(e); } }); buttonPanel.add(moveButton); JButton closeButton = new JButton("关闭"); closeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_closeButton_actionPerformed(e); } }); buttonPanel.add(closeButton); JScrollPane scrollPane = new JScrollPane(); contentPane.add(scrollPane, BorderLayout.CENTER); table = new JTable(); DefaultTableModel model = (DefaultTableModel) table.getModel();// 获得表格模型 model.setColumnIdentifiers(new String[] { "移动文件名称", "目标文件夹" }); table.setModel(model); scrollPane.setViewportView(table); } protected void do_sourceButton_actionPerformed(ActionEvent e) { DefaultTableModel model = (DefaultTableModel) table.getModel();// 获得表格模型 if (model.getRowCount() != 0) { model.setRowCount(0); } table.setModel(model); JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); chooser.setMultiSelectionEnabled(true); int result = chooser.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { selectFiles = chooser.getSelectedFiles(); if (selectFiles.length != 0) { StringBuilder fileNames = new StringBuilder(); for (File selectFile : selectFiles) { fileNames.append(selectFile.getName() "、"); } fileNames.deleteCharAt(fileNames.length() - 1); sourceTextField.setText(fileNames.toString()); } } } protected void do_targetButton_actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setMultiSelectionEnabled(false); int result = chooser.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { targetDirectory = chooser.getSelectedFile(); targetTextField.setText(targetDirectory.getAbsolutePath()); } } protected void do_moveButton_actionPerformed(ActionEvent e) { if ((selectFiles == null) || (selectFiles.length == 0)) { JOptionPane.showMessageDialog(this, "请选择需要移动的文件!", "警告信息", JOptionPane.WARNING_MESSAGE); return; } if (targetDirectory == null) { JOptionPane.showMessageDialog(this, "请选择目标文件夹!", "警告信息", JOptionPane.WARNING_MESSAGE); return; } DefaultTableModel model = (DefaultTableModel) table.getModel();// 获得表格模型 for (File selectFile : selectFiles) { String fileName = targetDirectory.getAbsolutePath() File.separator selectFile.getName();// 获得新文件名 selectFile.renameTo(new File(fileName));// 移动文件 model.addRow(new String[] { selectFile.getName(), targetDirectory.getAbsolutePath() });// 向表格模型中增加数据 } table.setModel(model);// 设置表格模型 } protected void do_closeButton_actionPerformed(ActionEvent e) { System.exit(0); } }