当前位置: 首页 > 知识库问答 >
问题:

显示新旧数字的Jlabel

谭伟
2023-03-14
public static void main(String[] args) {
    JFrame frame = new JFrame("FrameDemo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    //frame.setSize(500, 500);
    frame.setUndecorated(true);
    frame.getContentPane().setBackground(Color.GREEN);
    final long tStart = System.currentTimeMillis();
    long tNow = 0;
    System.out.println(tStart);
    while (1 != 0) {
        add_time(tNow, frame);
    }
}

public static void add_time(long tStart, JFrame frame) {
    long tNow = System.currentTimeMillis();

    if ((tNow - tStart) % 10000 >= 5000) {
        frame.setVisible(true);
        //System.out.println((tNow - tStart) % 10000);
        JLabel label = new JLabel("Test", JLabel.CENTER);
        label.setText(String.valueOf((tNow - tStart) % 10000));
        label.setFont(new Font("Serif", Font.BOLD, 240));
        label.setSize(500, 500);
        frame.add(label);
        //label.setText("");
    } else frame.setVisible(false);

}

}

共有1个答案

昌山
2023-03-14
frame.add(label);

不要不停地向框架添加组件。去掉那句话。

相反,您需要更新框架上的现有标签:

因此,您需要进行几项更改:

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;

public class TimerTime extends JPanel implements ActionListener
{
    private JLabel timeLabel;
    private int count = 0;

    public TimerTime()
    {
        timeLabel = new JLabel( new Date().toString() );
        add( timeLabel );

        Timer timer = new Timer(1000, this);
        timer.setInitialDelay(1);
        timer.start();
    }

    @Override
    public void actionPerformed(ActionEvent e)
    {
        //System.out.println(e.getSource());
        timeLabel.setText( new Date().toString() );
//      timeLabel.setText( String.valueOf(System.currentTimeMillis() ) );
        count++;

        if (count == 10)
        {
            Timer timer = (Timer)e.getSource();
            timer.stop();
        }
    }

    private static void createAndShowUI()
    {
        JFrame frame = new JFrame("TimerTime");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add( new TimerTime() );
        frame.setLocationByPlatform( true );
        frame.pack();
        frame.setVisible( true );
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowUI();
            }
        });
    }
}
 类似资料:
  • 我更新了JDK 1.7_51和JRE 1.7.79。My JAVA_HOME设置为C:\Program Files\Java\JDK1.7.0_51,而JRE_HOME设置为C:\Program Files\Java\JRE7(更新79),路径指向JDK 1.7_51/bin。 为什么java版本没有指向java 7 79更新?它指向Java7更新51。理想情况下,它应该指向JRE更新79。

  • 问题内容: 我在显示数据库中的数据时遇到问题。如果更新对象,有时会得到旧数据,有时会得到新数据。更新功能运行良好(我可以在数据库中看到正确的更新),而读取功能似乎可以获取缓存的数据。我试图禁用两个缓存,尝试在更新/保存期间打开和关闭会话,但仍然无法正常工作。用户bean和商店bean都具有懒惰访存。谢谢! 读取功能: 更新/保存功能: 问题答案: 通常,您具有隔离级别 “已读读”。这使您的事务可以

  • 我有一个使用chart.js创建的条形图。页面加载时一切正常,但当我使用daterangepicker更改时间范围时,出现了一个小故障。新数据被引入,但当我将鼠标悬停在上面时,旧数据会显示出来。我是javascript新手,希望能得到一些帮助。看起来我需要合并。销毁();不知怎么的,但我不知道怎么做。下面是我的代码片段: 破坏原始数据的最佳方法是什么,以便当我更改日期范围并将鼠标悬停在新图表上时,

  • 当我在图表上移动鼠标时,如何修复图表js错误,使其显示旧数据。 我的Js文件 我可以在图表js中显示JSON响应中的数据,但当我在图表上移动鼠标时,它的问题显示了以前的值。 我曾试图破坏这种方法,但并没有奏效。如何预防这个问题??。

  • 在的下载站点上,它说你可以克隆它来更新它。我下载它是为了安装它,但我开始真正进入并希望从现在开始每次更新它时都克隆它。我想我找到了我们需要克隆它的地方,经过了大量的搜索和比平时更少的文档。如果我是对的,它就在目录中,就在我的眼皮底下! 我是不是没有找到难以捉摸的文件夹,还是团队直到最新版本发布后才让您直接克隆它?例如,我知道VirtualBox就是这样做的。 我知道这有点重复这个问题,但我尝试了它

  • 问题内容: 鉴于: 如何为少于两位的所有数字显示前导零? 那是, 问题答案: 你可以使用: 印刷品: