所以在我的javafx程序中,我需要显示日期,既可以作为表单中的标签,也可以作为TableView中的单元格。
但是,我不想要长日期格式" 2014年9月14日。"我希望它只显示为" 3天前" " 2分钟前"或者只是3d或2米。我们称之为已用格式。
然而,在TableCell中创建像Facebook和其他页面这样的字符串不够好,2m应该在没有用户干预的情况下每分钟更新3m。同样适用于数小时/天等。
如果我从头开始写作......
我想我必须启动一个连接到所有这些小部件的线程并轮询到这些小部件(可能使用Platform.runLater)。
似乎我需要自己的派生标签,因为它需要能够容纳.setDate(日期)。
理想情况下,如果列和标签都可以在右键单击的长格式和已用格式之间切换,那么顶部的樱桃就可能。
在我看来,除了实例化这些小部件之外,用户不应该做任何事情,他们应该在后台连接自己。
然而,这是非常复杂的,我只是想问一下这样的事情是否已经存在?或者我是以错误的方式思考这个问题。
答案 0 :(得分:2)
查看digital clock label answer至Displaying changing values in JavaFx Label中的代码。
应用类似的概念,但让细胞工厂生成“时钟标签”。而不是让您的时钟标签报告当前时间,让他们报告实例化后的经过时间。每个实例化时钟标签中固有的内部动画时间线使它们自动更新,因此在触发的关键帧中,您可以将标签设置为您想要的任何内容。