gpt4 book ai didi

Java JSlider.getvalue 向 JTextField 返回正确的值,向 toolTipText 返回错误的值

转载 作者:行者123 更新时间:2023-11-29 03:41:18 29 4
gpt4 key购买 nike

我使用 NetBeans 7.2。

我的JPanel1中有一个JSlider slider_random,输入值100,最小值0,最大值1000。我通过属性(自定义代码)为 slider_random 设置了一个 toolTipText:

"<html>Range (0-" + String.valueOf(slider_random.getMaximum()) + ")<br>Current: " + String.valueOf(slider_random.getValue())

还放置了一个 JTextField text_current 并将文本设置为 100,这会在我更改它时显示 slider_random 的值。

我将 stateChanged 事件设置为 slider_random:

private void slider_randomStateChanged(javax.swing.event.ChangeEvent evt) {
slider_random.setToolTipText("<html>Range (0-" + String.valueOf(slider_random.getMaximum()) + ")<br>Current: " + String.valueOf(slider_random.getValue()));
jTextField1.setText(String.valueOf(slider_random.getValue()));
}

我的问题是当我启动程序并指向它显示的 slider 时:

Range (0-1000)

Current: 50

然后稍微移动 slider ,然后移回原来的位置(同时我可以看到 text_current 的变化)所有数据都正确了,工具提示说:

Range (0-1000)

Current: 100

什么会导致我的问题?

Here's the screenshot, after I lauched it.

最佳答案

我能够重现您的问题。

问题是 jSlider 的默认值为 50。您将该值修改为 100,但这并没有反射(reflect)在 jSlider 的 setToolTip() 方法中,您在该方法中访问 jSlider 的值(通过自定义代码)。它将显示旧值 50。

要纠正这个问题,一种解决方案是在 slider 上创建一个鼠标悬停事件,这样当您运行应用程序并将鼠标指针悬停在 slider 上时,jToolTip 方法会选择最新的值并向您显示相同的值。它对我有用,所以我相信它对你也有用。

如果我能想到更好的解决方案,我会发布相同的解决方案。

关于Java JSlider.getvalue 向 JTextField 返回正确的值,向 toolTipText 返回错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057812/

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