通过计时器在 JDialog 中设置动态 JLabel 文本

2023-11-29

我正在尝试制作一个 JDialog,它将在 JLabel 上向用户显示动态消息。 该消息应该是从 1 到 10 的计数(并且应该每秒更改一个数字)。 问题是,当我调试它时 - 它在“dia.setVisible(true);”之后立即停止,除非我关闭 JDialog ,否则不会继续。 有什么可能的方法来修复它吗? 谢谢。

看一下代码:

    @Override
public void run() {

    dia = new JDialog(parentDialog, true);
    dia.setLocationRelativeTo(parentFrame);


    String text = "Text ";
    dia.setSize(300, 150);
    jl = new JLabel(text);
    dia.getContentPane().add(jl);
    dia.setVisible(true);
    for (int i = 0; i < 10; i++) {
        try {
            Thread.sleep(1000);
            jl.setText(text + " " + i);

        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

  • 不要使用Thread.sleep(int)对于 Swing GUI,导致冻结直到Thread.sleep(int) ended

  • use Swing Timer而不是通过使用来锁定 Swing GUIThread.sleep(int)

  • 不要使用dia.setSize(300, 150), 学习如何LayoutManager works

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过计时器在 JDialog 中设置动态 JLabel 文本 的相关文章

随机推荐