Java JFrame标题重绘
在我的JFrame中,它循环执行一些任务,我希望看到JFrame标题中的状态,因此我有如下内容: frame.setTitle(“当前状态[“+Auto\u Count\u Id+”/“+Auto\u Count\u Total+”]”) 但这不是我需要的重新粉刷。因此,我尝试了以下方法: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() {
<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)