这段代码的作用是每次滑块旋钮在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");
}
}
答案 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");
}
}