打印一次Jslider

时间:2016-06-23 16:40:13

标签: java slider

这段代码的作用是每次滑块旋钮在0-20和20-50之间传递时打印一条消息(当旋钮处于1,2,3,4等时打印一条消息)。我需要的是在旋钮处于这些范围之间时只打印一次。

public void stateChanged(ChangeEvent e)
    {
        int sliderValue = jslider.getValue();  //This method returns the value of the Slider!
        if(sliderValue >= 0 && sliderValue <= 20)
        {
            System.out.println("Between 0 and 20");
        }
        else if (sliderValue > 20 && sliderValue <= 50)
        {
            System.out.println("You're 20 - 50");
        }
    }

2 个答案:

答案 0 :(得分:0)

这个怎么样......

private boolean range0Printed = false;
private boolean range1Printed = false;

public void stateChanged(ChangeEvent e)
{
    int sliderValue = jslider.getValue();  //This method returns the value of the Slider!
    if(sliderValue >= 0 && sliderValue <= 20 && !range0Printed)
    {
        System.out.println("Between 0 and 20");
        range0Printed = true;
    }
    else if (sliderValue > 20 && sliderValue <= 50 && !range1Printed)
    {
        System.out.println("You're 20 - 50");
        range1Printed = true;
    }
}

答案 1 :(得分:0)

在你的情况下,你有一个&#34; RANGE &#34;为时间间隔指定,这意味着

只要滑块输入下限,即[sliderValue&gt; = 0]或[sliderValue&gt; 20]你的病情得到满足并保持真实,直到它退出上限即 [sliderValue&lt; = 20]或[sliderValue&lt; = 50]。

概念是首先设置限制,您可以设置上限独占。

其中一个解决方案可能是将范围的中位数作为成功的目标。

public void stateChanged(ChangeEvent e) {
    int sliderValue = jslider.getValue();
    int lowerMedian=(0+20)/2;
    int upperMedian=(0+50)/2;
    if (sliderValue >= 0 && sliderValue <= 20 && sliderValue == lowerMedian) {
        System.out.println("Between 0 and 20");
    } else if (sliderValue > 20 && sliderValue <= 50 && sliderValue == upperMedian) {
        System.out.println("You're 20 - 50");
    }
}