根据数字型样式或非数字型样式创建文件夹

2018-10-31 17:14:17  开始写



数字型






非数字型





  1 import javax.swing.JFrame;
  2 import javax.swing.JPanel;
  3 import javax.swing.border.EmptyBorder;
  4 import javax.swing.JLabel;
  5 import javax.swing.JOptionPane;
  6
  7 import java.awt.Font;
  8 import javax.swing.JTextField;
  9 import javax.swing.ButtonGroup;
 10 import javax.swing.JButton;
 11 import javax.swing.JFileChooser;
 12
 13 import java.awt.event.ActionListener;
 14 import java.io.File;
 15 import java.text.DecimalFormat;
 16 import java.awt.event.ActionEvent;
 17 import javax.swing.JRadioButton;
 18 import javax.swing.SwingConstants;
 19
 20 public class Folder extends JFrame { // 创建“文件夹”类继承JFrame
 21
 22     private JPanel contentPane; // 内容面板
 23     private JTextField tf_Path; // 输入“文件路径”的文本框
 24     private JTextField tf_From; // “从”后面的文本框
 25     private JTextField tf_To; // “到”后面的文本框
 26     private String Path; // 文件路径
 27     private JRadioButton rdbtnNum;
 28     private JRadioButton rdbtnChar;
 29     private JLabel lblShow;
 30
 31     public static void main(String[] args) {
 32         Folder folder = new Folder(); // 创建“文件夹”对象
 33         folder.setVisible(true); // 使得“文件夹”可视
 34     }
 35
 36     /**
 37      * 创建窗体
 38      */
 39     public Folder() { // “文件夹”类的构造方法
 40         setResizable(false); // 不可改变窗体大小
 41         setTitle("按照模板创建文件夹"); // 设置窗体的题目
 42         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体的关闭方式
 43         setBounds(100, 100, 424, 200); // 设定该窗体的横、纵坐标,宽、高
 44         /**
 45          * 创建内容面板,设置面板的边距,布局(绝对布局),把内容面板放到窗体中
 46          */
 47         contentPane = new JPanel();
 48         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
 49         setContentPane(contentPane);
 50         contentPane.setLayout(null);
 51         /**
 52          * 创建“请选择文件夹”的标签,设置标签的横、纵坐标,宽、高,字体内容和样式,把该标签放到内容面板中
 53          */
 54         JLabel lb_Choose = new JLabel("请选择文件夹:");
 55         lb_Choose.setFont(new Font("宋体", Font.PLAIN, 12));
 56         lb_Choose.setBounds(10, 30, 85, 20);
 57         contentPane.add(lb_Choose);
 58         /**
 59          * 创建输入“文件路径”的文本框,设置文本框的横、纵坐标,宽、高,字体内容和样式,把该文本框放到内容面板中
 60          */
 61         tf_Path = new JTextField();
 62         tf_Path.setFont(new Font("宋体", Font.PLAIN, 12));
 63         tf_Path.setBounds(95, 30, 215, 20);
 64         contentPane.add(tf_Path);
 65         tf_Path.setColumns(10);
 66         /**
 67          * 创建“浏览”按钮,设置按钮的横、纵坐标,宽、高,字体内容和样式,把该按钮放到内容面板中
 68          */
 69         JButton btn_Search = new JButton("浏 览");
 70         btn_Search.addActionListener(new ActionListener() { // 动作事件的监听
 71             public void actionPerformed(ActionEvent e) { // 发生操作时
 72                 JFileChooser jfc = new JFileChooser(); // 创建文件选择对话框
 73                 jfc.setDialogTitle("请选择要导出目录"); // 设置对话框的标题
 74                 jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); // 设置自允许获得路径
 75                 int result = jfc.showOpenDialog(getContentPane()); // 显示文件选择对话框
 76                 File file = null; // 创建一个空的文件对象
 77                 if (JFileChooser.APPROVE_OPTION == result) { // 判断用户单击的是否为“打开”按钮
 78                     file = jfc.getSelectedFile(); // 获得选中的文件对象
 79                     Path = file.getAbsolutePath() + "\\"; // 拼接编辑器识别的文件路径
 80                     tf_Path.setText(Path); // 把拼接好的文件路径写入到“文件路径”的文本框中
 81                 }
 82             }
 83         });
 84         btn_Search.setFont(new Font("宋体", Font.PLAIN, 12));
 85         btn_Search.setBounds(318, 30, 90, 20);
 86         contentPane.add(btn_Search);
 87         /**
 88          * 创建“添加文件夹:从”的标签,设置标签的横、纵坐标,宽、高,字体内容和样式,把该标签放到内容面板中
 89          */
 90         JLabel lb_From = new JLabel("添加文件夹:从");
 91         lb_From.setFont(new Font("宋体", Font.PLAIN, 12));
 92         lb_From.setBounds(10, 120, 85, 20);
 93         contentPane.add(lb_From);
 94         /**
 95          * 创建输入起始整型变量的文本框,设置文本框的横、纵坐标,宽、高,字体内容和样式,把该文本框放到内容面板中
 96          */
 97         tf_From = new JTextField();
 98         tf_From.setBounds(95, 120, 93, 20);
 99         contentPane.add(tf_From);
100         tf_From.setColumns(10);
101         /**
102          * 创建输入终止整型变量的文本框,设置文本框的横、纵坐标,宽、高,字体内容和样式,把该文本框放到内容面板中
103          */
104         tf_To = new JTextField();
105         tf_To.setBounds(213, 120, 93, 20);
106         contentPane.add(tf_To);
107         tf_To.setColumns(10);
108         /**
109          * 创建“到”的标签,设置标签的横、纵坐标,宽、高,字体内容和样式,把该标签放到内容面板中
110          */
111         JLabel lb_To = new JLabel("到");
112         lb_To.setFont(new Font("宋体", Font.PLAIN, 12));
113         lb_To.setBounds(196, 120, 15, 20);
114         contentPane.add(lb_To);
115         /**
116          * 创建“添加”按钮,设置按钮的横、纵坐标,宽、高,字体内容和样式,把该按钮放到内容面板中
117          */
118         JButton btn_Add = new JButton("添 加");
119         btn_Add.addActionListener(new ActionListener() { // 动作事件的监听
120             public void actionPerformed(ActionEvent e) { // 发生操作时
121                 if (rdbtnNum.isSelected()) {
122                     handleNum();
123                 }
124                 if (rdbtnChar.isSelected()) {
125                     handleChar();
126                 }
127             }
128         });
129         btn_Add.setFont(new Font("宋体", Font.PLAIN, 12));
130         btn_Add.setBounds(318, 120, 90, 20);
131         contentPane.add(btn_Add);
132         /**
133          * 单选按钮“数字型”
134          */
135         rdbtnNum = new JRadioButton("数字型");
136         rdbtnNum.setSelected(true);
137         rdbtnNum.addActionListener(new ActionListener() {
138             public void actionPerformed(ActionEvent e) {
139                 lblShow.setText("数字型样式:000001");
140             }
141         });
142         rdbtnNum.setFont(new Font("宋体", Font.PLAIN, 12));
143         rdbtnNum.setHorizontalAlignment(SwingConstants.CENTER);
144         rdbtnNum.setBounds(6, 86, 70, 23);
145         contentPane.add(rdbtnNum);
146         /**
147          * 单选按钮“非数字型”
148          */
149         rdbtnChar = new JRadioButton("非数字型");
150         rdbtnChar.addActionListener(new ActionListener() {
151             public void actionPerformed(ActionEvent e) {
152                 lblShow.setText("非数字型样式:Demo_001");
153             }
154         });
155         rdbtnChar.setFont(new Font("宋体", Font.PLAIN, 12));
156         rdbtnChar.setHorizontalAlignment(SwingConstants.CENTER);
157         rdbtnChar.setBounds(100, 86, 80, 23);
158         contentPane.add(rdbtnChar);
159         /**
160          * 单选按钮组
161          */
162         ButtonGroup buttonGroup = new ButtonGroup();
163         buttonGroup.add(rdbtnNum);
164         buttonGroup.add(rdbtnChar);
165         /**
166          * 样式标签
167          */
168         lblShow = new JLabel("数字型样式:000001");
169         lblShow.setFont(new Font("隶书", Font.PLAIN, 14));
170         lblShow.setHorizontalAlignment(SwingConstants.CENTER);
171         lblShow.setBounds(195, 86, 160, 23);
172         contentPane.add(lblShow);
173     }
174
175     public String getPattern(String str) { // 获得目标格式的方法
176         StringBuilder stringBuilder = new StringBuilder(); // 创建存储字符串的容器
177         for (int i = 0; i < str.length(); i++) { // 向字符串容器中添加与目标字符串长度一致的“0”
178             stringBuilder.append(0);
179         }
180         String pattern = stringBuilder.toString(); // 获得目标格式
181         return pattern; // 返回目标格式
182     }
183
184     public int getValidNum(String str) { // 获得有效数字的方法
185         char flag = ‘0‘; // 标志变量,用来与目标字符串中每个索引位置上的字符进行比较
186         int index = 0; // 初始化字符串中第一位不为“0”的字符的索引值
187         for (int i = 0; i < str.length(); i++) { // 通过循环,使用标志变量与目标字符串中每个索引位置上的字符进行比较
188             if (flag != str.charAt(i)) { // 目标字符串中索引位置上的字符不为“0”时
189                 index = i; // 获得字符串中第一位不为“0”的字符的索引值
190                 break; // 终止循环
191             }
192         }
193         String tempResult = str.substring(index, str.length()); // 获得有效数字
194         int validNum = Integer.parseInt(tempResult); // 数据类型转换得到int类型的有效数字
195         return validNum; // 有效数字
196     }
197
198     public void handleNum() { // 处理选择“数字型”的方法
199         try {
200             if (tf_From.getText().length() == tf_To.getText().length()) { // 如果“从”后的文本框中的文本长度等于“到”后的文本框中的文本长度
201                 // 获得文本框中的文本内容
202                 String strFrom = tf_From.getText();
203                 String strTo = tf_To.getText();
204                 // 获得有效数字(例如:0000000012的有效数字是12)
205                 int num_From = getValidNum(strFrom);
206                 int num_To = getValidNum(strTo);
207                 if (num_From >= num_To) { // 当起始整型变量大于等于终止整型变量时的弹出框内容
208                     JOptionPane.showMessageDialog(null, "数据输入格式错误!\n“从”后的文本框中的有效数字要小于\n“到”后的文本框中的有效数字。", "警告",
209                             JOptionPane.ERROR_MESSAGE);
210                 } else { // 当起始整型变量小于终止整型变量时
211                     DecimalFormat df = new DecimalFormat(getPattern(strFrom)); // 根据目标格式,格式化文件名
212                     for (int i = num_From; i <= num_To; i++) { // 通过循环创建文件
213                         File file = new File(Path + df.format(i)); // 按照指定路径生成文件夹
214                         if (!file.exists()) { // 如果文件不存在
215                             file.mkdir(); // 创建此抽象路径名指定的目录
216                         }
217                     }
218                     JOptionPane.showMessageDialog(null, "文件夹创建成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
219                 }
220             } else {
221                 JOptionPane.showMessageDialog(null, "输入的文本内容长度不一致!\n请重新输入...", "警告", JOptionPane.ERROR_MESSAGE);
222             }
223         } catch (NumberFormatException e) {
224             JOptionPane.showMessageDialog(null, "请参照指定样式输入数据!", "警告", JOptionPane.ERROR_MESSAGE);
225         }
226     }
227
228     public void handleChar() { // 处理选择“非数字型”的方法
229         try {
230             if (tf_From.getText().length() == tf_To.getText().length()) { // 如果“从”后的文本框中的文本长度等于“到”后的文本框中的文本长度
231                 // 获得文本框中的文本内容
232                 String strFrom = tf_From.getText();
233                 String strTo = tf_To.getText();
234                 // 拆分文本框中的文本内容
235                 String[] targetFrom = strFrom.split("_");
236                 String[] targetTo = strTo.split("_");
237                 if (targetFrom[0].equals(targetTo[0])) {
238                     // 获得有效数字(例如:0000000012的有效数字是12)
239                     int num_From = getValidNum(targetFrom[1]);
240                     int num_To = getValidNum(targetTo[1]);
241                     if (num_From >= num_To) { // 当起始整型变量大于等于终止整型变量时的弹出框内容
242                         JOptionPane.showMessageDialog(null, "数据输入格式错误!\n“从”后的文本框中的有效数字要小于\n“到”后的文本框中的有效数字。", "警告",
243                                 JOptionPane.ERROR_MESSAGE);
244                     } else { // 当起始整型变量小于终止整型变量时
245                         DecimalFormat df = new DecimalFormat(getPattern(targetFrom[1])); // 根据目标格式,格式化文件名
246                         for (int i = num_From; i <= num_To; i++) { // 通过循环创建文件
247                             File file = new File(Path + targetFrom[0] + "_" + df.format(i)); // 按照指定路径生成文件夹
248                             if (!file.exists()) { // 如果文件不存在
249                                 file.mkdir(); // 创建此抽象路径名指定的目录
250                             }
251                         }
252                         JOptionPane.showMessageDialog(null, "文件夹创建成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
253                     }
254                 } else {
255                     JOptionPane.showMessageDialog(null, "输入的文本内容字符不一致!\n请重新输入...", "警告", JOptionPane.ERROR_MESSAGE);
256                 }
257             } else {
258                 JOptionPane.showMessageDialog(null, "输入的文本内容长度不一致!\n请重新输入...", "警告", JOptionPane.ERROR_MESSAGE);
259             }
260         } catch (Exception e) { // 当输入的文本内容不能转换为int型时的弹出框内容
261             JOptionPane.showMessageDialog(null, "请参照指定样式输入数据!", "警告", JOptionPane.ERROR_MESSAGE);
262         }
263     }
264 }


说明

根据想要的个数创建多个文件夹

谢谢、Thank you、Salamat Do(撒拉玛特朵)、あリがCám o*n(嘉蒙)とゥ(阿里嘎都)、????? (勘三哈咪瘩)、terima Kasih(得力马卡系)、kob-khun(寇布库恩)、dhanyavaad(达尼阿瓦德)、toda(透达)、te?ekkür ederim(特谢库尔埃戴里姆)、Dzie,kuje(以库以而)、Spasibo(思巴喜柏)、Danke(但可)、shokran(休克朗)、Obrigada(欧布哩嘎搭)、dank u(当Q)、Merci(梅呵西)、Gracias(格拉喜亚思)、Grazie(格啦姬)、Благодарности、Tak、Kiitos、Díky、Hvala、Mul?umesc、Takk、Ευχαριστ



根据数字型样式或非数字型样式创建文件夹

原文地址:https://www.cnblogs.com/YUJIE666/p/9884454.html

时间: 2024-10-17 09:15:34

根据数字型样式或非数字型样式创建文件夹的相关文章

使用JFileChooser实现在指定文件夹下批量添加根据“数字型样式”或“非数字型样式”命令的文件夹

2018-11-05 20:57:00开始写 Folder.java类 1 import javax.swing.JFrame; 2 import javax.swing.JPanel; 3 import javax.swing.border.EmptyBorder; 4 import javax.swing.JLabel; 5 import javax.swing.JOptionPane; 6 7 import java.awt.Font; 8 import javax.swing.JText

【Java】检查型异常和非检查型异常

检查型异常(CheckedException)在Java中所有不是RuntimeException派生的Exception都是检查型异常.当函数中存在抛出检查型异常的操作时该函数的函数声明中必须包含throws语句.调用改函数的函数也必须对该异常进行处理,如不进行处理则必须在调用函数上声明throws语句. 检查型异常是JAVA首创的,在编译期对异常的处理有强制性的要求.在JDK代码中大量的异常属于检查型异常,包括IOException,SQLException等等. 非检查型异常(Unchec

检查型异常和非检查型异常

对于因为编程错误而导致的异常,或者是不能期望程序捕获的异常(解除引用一个空指针,数组越界,除零,等等),为了使开发人员免于处理这些异常,一些异常被命名为非检查型异常(即那些继承自 RuntimeException 的异常)并且不需要进行声明. Checked Exception和Unchecked Exception的几点不同之处 方法签名是否需要声明exception 调用该方法时是否需要捕获exception exception产生的时候JVM控制程序的状态 Sun 的"The JavaTu

WIN10删除非系统用户的用户文件夹

::------------------WIN10删除非系统用户的用户文件夹------------------ ::实际使用时可以删除类似 "echo 1没有删除Administrator >>C:\系统用户.txt" 的测试提示语句 @echo off del C:\系统用户.txt del C:\删除的用户.txt setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir /a-o/

Java检查型异常和非检查型异常

1.代码 public class ExcepTest { /** * @param args */ public static void main(String[] args) { System.err.println("111111111111"); // say(); //抛出异常,但是代码不显示的try..catch.. // calc(); //抛出异常,但是代码不显示的try..catch.. // try { // show(); // } catch (Exceptio

java扫描文件夹下面的所有文件(递归与非递归实现)

java中扫描指定文件夹下面的所有文件扫描一个文件夹下面的所有文件,因为文件夹的层数没有限制可能多达几十层几百层,通常会采用两种方式来遍历指定文件夹下面的所有文件.递归方式非递归方式(采用队列或者栈实现)下面我就给出两种方式的实现代码,包括了递归与非递归实现,code如下所示. package q.test.filescanner; import java.io.File;import java.util.ArrayList;import java.util.LinkedList; import

oracle 非数字型转数字型

原文:oracle 非数字型转数字型 oracle中如果一个字段内容不全是数字型 可以通过以下方式过滤 to_number(substr(translate(a.vital_signs_cvalues, '9876543210.' || a.vital_signs_cvalues, '9876543210.'), 1, instr(translate(a.vital_signs_cvalues, '9876543210.' || a.vital_signs_cvalues, '987654321

0093 数字型 Number:整数、小数 、数字型进制、数字型范围、数字型三个特殊值

JavaScript 数字类型既可以保存整数,也可以保存小数(浮点数). var age = 21; // 整数 var Age = 21.3747; // 小数 数字型进制 最常见的进制有二进制.八进制.十进制.十六进制. // 1.八进制数字序列范围:0~7 var num1 = 07; // 对应十进制的7 var num2 = 019; // 对应十进制的19 var num3 = 08; // 对应十进制的8 // 2.十六进制数字序列范围:0~9以及A~F var num = 0xA

js 将数字型 的字符串 转 数字 【整数 /浮点型数字】

1. js 提供了两种可以将 数字型 的字符串 转 数字 的方法 parseInt()和parseFloat(), parseInt() 是转成整数, 但 向下去整数 , parseFloat() 是转成浮点型 2. 使用方法一样 let a = parseInt(" 2.3"): // 结果是 a  = 2 // let b = parseFloat(" 2.3333"): // 结果是 b  = 2.3333 // //可设置有效小数位数 //保留两位小数 b.