Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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 JFrame标题重绘_Java_Swing_Jframe - Fatal编程技术网

Java JFrame标题重绘

Java JFrame标题重绘,java,swing,jframe,Java,Swing,Jframe,在我的JFrame中,它循环执行一些任务,我希望看到JFrame标题中的状态,因此我有如下内容: frame.setTitle(“当前状态[“+Auto\u Count\u Id+”/“+Auto\u Count\u Total+”]”) 但这不是我需要的重新粉刷。因此,我尝试了以下方法: <1> SwingUtilities.invokeLater(new Runnable() { public void run() {

在我的JFrame中,它循环执行一些任务,我希望看到JFrame标题中的状态,因此我有如下内容:

frame.setTitle(“当前状态[“+Auto\u Count\u Id+”/“+Auto\u Count\u Total+”]”)

但这不是我需要的重新粉刷。因此,我尝试了以下方法:

<1>

    SwingUtilities.invokeLater(new Runnable() 
    {
      public void run()
      {
        frame.setTitle("Current status [ "+Auto_Count_Id+"/"+Auto_Count_Total+" ]");
      }
    });

SwingUtilities.invokeLater(新的Runnable()
{
公开募捐
{
frame.setTitle(“当前状态[“+Auto\u Count\u Id+”/“+Auto\u Count\u Total+”]”);
}
});


//重新绘制(长时间、绘制x、绘制y、绘制宽度、绘制高度)
框架重新喷漆(10,0,050300)

它们也不工作,只在任务完成后重新绘制,我能做什么?

不要在Swing的事件线程中完成繁重的工作。为您的计算创建一个新线程,以便Swing可以使用其线程重新绘制GUI。

不要在Swing的事件线程中进行繁重的工作。为您的计算创建一个新线程,以便Swing可以使用它的线程重新绘制GUI。

看看这个类。

看看这个类。

是的,SwingWorker是一个不错的选择

如果您使用的是Java 6,那么它附带了一个包含publish()和process()方法的SwingWorker版本。这些方法用于在执行长时间运行的任务时发布数据,然后在事件调度线程中发布该数据

您可以使用中定义的长时间运行任务创建SwingWorker子类。然后,在长时间运行的任务中,使用publish()方法发布JFrame标题字符串。覆盖process方法以设置JFrame的标题


是的,SwingWorker是一个不错的选择

如果您使用的是Java 6,那么它附带了一个包含publish()和process()方法的SwingWorker版本。这些方法用于在执行长时间运行的任务时发布数据,然后在事件调度线程中发布该数据

您可以使用中定义的长时间运行任务创建SwingWorker子类。然后,在长时间运行的任务中,使用publish()方法发布JFrame标题字符串。覆盖process方法以设置JFrame的标题

    <2>
    // repaint(long time, int x, int y, int width, int height) 
    frame.repaint(10,0,0,500,300)