gpt4 book ai didi

java - 几秒后自动更改 jSlider

转载 作者:行者123 更新时间:2023-12-01 11:35:13 25 4
gpt4 key购买 nike

我有一个 Java Swing 程序,当 jSlider 更改时,后台程序就会执行。但 jSlider 不能通过人为交互来改变,但它会自动减小(jSlider 代表液体的浓度水平)。一旦减少,其他程序通过actionListener读取jSlider并提供适当的溶质以满足浓度要求。我无法实现这种情况。我尝试过使用线程,但由于我的知识有限,我可能没有编写正确的代码。

public static void main(String args[])
{
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
new IPS().setVisible(true);

}
});

Thread concentration = new Thread()
{
public void run()
{
try
{
Thread.sleep(3000);
} catch (InterruptedException v)
{

}
sldLevel.setValue(sldLevel.getValue() - 3);
}
};
boolean carryOn = true;

while (carryOn && !btnIPSStart.isEnabled())
{
concentration.start();
}
}
<小时/>

使用 Swing Timer 更新代码

    public static void main(String args[])
{
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
new IPS().setVisible(true);

}
});

Timer myTimer = new Timer(100, 1000);
// I get a error 'int cannot be converted to action listener

while (myTimer.isRunning)
{
sldLevel.setValue(sldLevel.getValue() - 3)
}

最佳答案

你不应该使用Thread,也不应该使用Thread.sleep()。这将导致 GUI 卡住并且无法重新绘制自身。

您应该使用 Swing Timer 。当计时器触发时,您可以更新 slider 的值。

关于java - 几秒后自动更改 jSlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30068009/

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