gpt4 book ai didi

java - 设置大小后 JLabel.setText() 不起作用

转载 作者:行者123 更新时间:2023-11-30 04:58:45 24 4
gpt4 key购买 nike

我有一个 JLabel,需要在按下按钮时动态更改。我正在使用 JLabel.setText(s)

但是,它不起作用。我试过:

JLabel.repaint()
JLabel.validate()
JLabel.revalidate()

我觉得奇怪的是,当我不使用以下任何设置 JLabel 的大小时,它工作正常:

JLabel.setPrefferedSize()
JLabel.setMinimumSize()
JLabel.setSize()

任何人都可以帮助我解决为什么在我设置其中一个尺寸属性后它不起作用吗?

最佳答案

您的按钮正在执行的操作可能是一项非常漫长的任务,并且您希望让用户了解该过程。

为此,您必须创建一个新线程来执行长时间任务,并且当您为标签设置新文本时,将 label.setText() 语句包装到 invokeLater( ):

public void buttonAction()
{
new Thread(new Runnable()
{
public void run()
{
// Here your long task

// When you want to call Label.setText(), do it like this:
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
label.setText("Loading 1/13...");
}
});

// Here another part of your task....

SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
label.setText("Done!");
}
});
}
}).start();
}

关于java - 设置大小后 JLabel.setText() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com