Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中仅显示几秒钟的字符串?_Java_String_Jframe - Fatal编程技术网

如何在Java中仅显示几秒钟的字符串?

如何在Java中仅显示几秒钟的字符串?,java,string,jframe,Java,String,Jframe,我想在JFrame的中心显示一个字符串,时间仅为5秒。 我该怎么做?这是一个Swing问题,因此解决方案是使用Swing计时器而不是线程。睡眠(…)。如果使用线程睡眠,您将有可能睡眠Swing事件线程,使整个GUI处于睡眠状态,从而阻止任何新文本显示。这是一个Swing问题,因此解决方案是使用Swing计时器而不是线程。睡眠(…)。如果使用线程睡眠,您将有可能睡眠Swing事件线程,使整个GUI处于睡眠状态,从而阻止显示任何新文本 将JLabel添加到您的JFrame 设置标签的文本 对于等待,

我想在JFrame的中心显示一个字符串,时间仅为5秒。
我该怎么做?

这是一个Swing问题,因此解决方案是使用Swing计时器而不是
线程。睡眠(…)
。如果使用线程睡眠,您将有可能睡眠Swing事件线程,使整个GUI处于睡眠状态,从而阻止任何新文本显示。

这是一个Swing问题,因此解决方案是使用Swing计时器而不是
线程。睡眠(…)
。如果使用线程睡眠,您将有可能睡眠Swing事件线程,使整个GUI处于睡眠状态,从而阻止显示任何新文本

  • JLabel
    添加到您的
    JFrame
  • 设置标签的文本
  • 对于等待,不要使用创建UI元素时所使用的事件分派线程。改用摆动计时器:
  • 计时器启动时,将
    JLabel
    的文本设置为空字符串或将其完全删除
  • JLabel
    添加到您的
    JFrame
  • 设置标签的文本
  • 对于等待,不要使用创建UI元素时所使用的事件分派线程。改用摆动计时器:
  • 计时器启动时,将
    JLabel
    的文本设置为空字符串或将其完全删除

  • 睡眠(5000);然后将文本设置为“”并刷新将冻结整个应用程序的对话框。这不是一个好主意。@LuiggiMendoza说得很好。你可以在一个单独的线程中完成。thread.sleep(5000);然后将文本设置为“”并刷新将冻结整个应用程序的对话框。这不是一个好主意。@LuiggiMendoza说得很好。你可以在一个单独的线程中完成。谢谢,我编辑了它。从技术上讲,尽管您没有显式地创建等待,但它仍然是一个执行等待的不同线程。来自javax.swing.Timer javadoc:“虽然所有计时器都使用一个共享线程(由执行的第一个计时器对象创建)执行等待,但计时器的操作事件处理程序在另一个线程上执行——事件调度线程。”我同意,等待是在另一个线程中完成的,而且是在看不见的情况下完成的,但我担心你的回答会让OP在后台线程中运行计时器。谢谢,我编辑了它。从技术上讲,尽管您没有显式地创建等待,但它仍然是一个执行等待的不同线程。来自javax.swing.Timer javadoc:“虽然所有计时器都使用一个共享线程(由执行的第一个计时器对象创建)执行等待,但计时器的操作事件处理程序在另一个线程上执行——事件调度线程。”我同意,等待是在另一个线程中完成的,而且是在看不见的情况下完成的,但是我担心你的回答会让OP在后台线程中运行计时器。