how2j.cn

下载区
文件名 文件大小
datepicker.jar 53k
swingx-core-1.6.2.jar 1m

工具版本兼容问题
swing没有自带的日期控件,需要第三方的类
jar包可以在右侧下载


本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



5分48秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



步骤 1 : DatePicker   
步骤 2 : JXDatePicker   
步骤 3 : 练习-统计文件数量   
步骤 4 : 答案-统计文件数量   

本例使用 datepicker.jar 包,有一个缺点,不能设置时间,只能在创建控件的时候传入指定日期。
需要设置日期,请使用JXDatePicker
DatePicker
package gui; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import java.util.Locale; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import com.eltima.components.ui.DatePicker; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("LoL"); f.setSize(400, 300); f.setLocation(200, 200); f.setLayout(null); final DatePicker datepick; datepick = getDatePicker(); f.add(datepick); JButton b = new JButton("获取时间"); b.setBounds(137, 183, 100, 30); f.add(b); b.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(f, "获取控件中的日期:" + datepick.getValue()); System.out.println(datepick.getValue()); } }); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } private static DatePicker getDatePicker() { final DatePicker datepick; // 格式 String DefaultFormat = "yyyy-MM-dd HH:mm:ss"; // 当前时间 Date date = new Date(); // 字体 Font font = new Font("Times New Roman", Font.BOLD, 14); Dimension dimension = new Dimension(177, 24); int[] hilightDays = { 1, 3, 5, 7 }; int[] disabledDays = { 4, 6, 5, 9 }; datepick = new DatePicker(date, DefaultFormat, font, dimension); datepick.setLocation(137, 83); datepick.setBounds(137, 83, 177, 24); // 设置一个月份中需要高亮显示的日子 datepick.setHightlightdays(hilightDays, Color.red); // 设置一个月份中不需要的日子,呈灰色显示 datepick.setDisableddays(disabledDays); // 设置国家 datepick.setLocale(Locale.CHINA); // 设置时钟面板可见 datepick.setTimePanleVisible(true); return datepick; } }
本例使用 包swingx-core-1.6.2.jar,界面比较简约,可以设置日期
JXDatePicker
package gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import org.jdesktop.swingx.JXDatePicker; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("LoL"); f.setSize(400, 300); f.setLocation(200, 200); f.setLayout(null); Date date = new Date(); final JXDatePicker datepick = new JXDatePicker(); // 设置 date日期 datepick.setDate(date); datepick.setBounds(137, 83, 177, 24); f.add(datepick); JButton b = new JButton("获取时间"); b.setBounds(137, 183, 100, 30); f.add(b); b.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // 获取 日期 Date d = datepick.getDate(); JOptionPane.showMessageDialog(f, "获取控件中的日期 :" + d); } }); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }
步骤 3 :

练习-统计文件数量

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
借助时间控件,选中一个时间,然后根据这个时间,统计e:\project 修改时间大于这个时间的文件,一共有多少
练习-统计文件数量
步骤 4 :

答案-统计文件数量

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

7分58秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


package gui; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Locale; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import com.eltima.components.ui.DatePicker; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("LoL"); f.setSize(500, 300); f.setLocation(200, 200); f.setLayout(null); final DatePicker datepick; datepick = getDatePicker(); f.add(datepick); JButton b = new JButton("统计在D:/eclipse3.1 目录下,修改时间大于控件日期的文件总数"); b.setBounds(20, 183, 450, 30); f.add(b); b.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { File folder = new File("D:\\eclipse3.1"); Date d = (Date) datepick.getValue(); JOptionPane.showMessageDialog(f, "文件总数是:" + countFilesModifiedDateGreaterThan(folder, d)); } }); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } private static DatePicker getDatePicker() { final DatePicker datepick; // 格式 String DefaultFormat = "yyyy-MM-dd HH:mm:ss"; // 当前时间 Date date = new Date(); // 字体 Font font = new Font("Times New Roman", Font.BOLD, 14); Dimension dimension = new Dimension(177, 24); int[] hilightDays = { 1, 3, 5, 7 }; int[] disabledDays = { 4, 6, 5, 9 }; datepick = new DatePicker(date, DefaultFormat, font, dimension); // datepick.setLocation(137, 83); datepick.setBounds(137, 83, 177, 24); // 设置一个月份中需要高亮显示的日子 datepick.setHightlightdays(hilightDays, Color.red); // 设置一个月份中不需要的日子,呈灰色显示 datepick.setDisableddays(disabledDays); // 设置国家 datepick.setLocale(Locale.CHINA); // 设置时钟面板可见 datepick.setTimePanleVisible(true); return datepick; } public static List<File> scanFolder(File folder){ List<File> files = new ArrayList<>(); File[] fs = folder.listFiles(); for (File f : fs) { if(f.isDirectory()){ List<File> subFolderFiles = scanFolder(f); files.addAll(subFolderFiles); } if(f.isFile()){ files.add(f); } } return files; } public static long countFilesModifiedDateGreaterThan(File folder,Date d){ List<File> fs = scanFolder(folder); return fs.stream() .filter(f->f.lastModified()>d.getTime()) .count(); } }


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2019-09-24 感觉这个题主要的考察内容还是遍历
小魏学Java




是不是有些繁琐,各位指教
public static void main(String[] args) {
		JFrame f = new JFrame("LoL");
        f.setSize(400, 300);
        f.setLocation(200, 200);
        f.setLayout(new FlowLayout());
   
        final DatePicker datepick;
        datepick = TestGUI06.getDatePicker();
   
        f.add(datepick);
   
        JButton b = new JButton("获取此时间之后修改的文件");
        b.setBounds(137, 183, 100, 30);
        f.add(b);
        
        b.addActionListener(new ActionListener() {
			//
        	ArrayList<String> a=new ArrayList<String>();
        	public void tongji(long l,String filename) {
        		File f=new File(filename);
        		if(f.isFile()) {
        			if(f.lastModified()>l) {
        				String name=f.getAbsolutePath();
            			a.add(name);
        			}
        			
        		}
        		if(f.isDirectory()) {
        			File[] children=f.listFiles();
        			for(File child:children) {
        				String childname=child.getAbsolutePath();
        				tongji(l,childname);
        			}
        		}
        	}
        	
			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(f, "获取控件中的日期:" + datepick.getValue());
               long time=getTime(datepick);
                String s="F:\\开始\\Practice\\src";
                tongji(time,s);
                for(String all:a) {
                	System.out.println(all.toString());
                }
                
			}
		});
        
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 	   
        f.setVisible(true);

	}
	
	private static long getTime(DatePicker datepick) {
		 System.out.println("当前日期为:"+datepick.getValue());
         Date d=(Date)datepick.getValue();
         System.out.print(d.getTime());
		return d.getTime();
	}

							





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2019-06-27 怎么将时间显示在菜单栏中啊
twjjwt

怎么将时间显示在菜单栏中啊




1 个答案

havana
答案时间:2019-09-06
使用 f.add ()函数 另外附上我的答案 ^_^



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2019-06-27 ZZ交作业 统计修改时间晚于设定时间的文件数量
2019-06-02 DatePicker怎么不能修改时间了,为什么我的可以
2019-04-06 交作业
2019-03-25 作业~
2019-01-08 为什么统计文件次数出现错误
2018-12-12 交作业
2018-10-28 滚动条为什么不显示出来?
2018-10-06 如何import下载下来的文件呢?
2017-06-05 关于设置可选的最大最小日期




提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 中级-图形界面-日期控件 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 982790551
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图