【问题标题】:Printing a single time Jslider打印一次 Jslider
【发布时间】:2016-10-26 02:59:30
【问题描述】:

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

【问题讨论】:

    标签: java slider


    【解决方案1】:

    这个怎么样...

    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;
        }
    }
    

    【讨论】:

    • @Cohen,您介意将我的答案作为正确答案吗(我的意思是检查一下)...谢谢
    【解决方案2】:

    在您的情况下,您为时间间隔指定了“RANGE”,这意味着

    一旦滑块进入下限,即 [sliderValue >= 0] 或 [sliderValue > 20],您的条件就会得到满足并保持为真,直到它退出上限,即 [sliderValue

    概念是先设置限制,您可以设置上限排除。

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

    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");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-11
      • 2016-09-07
      • 2019-03-31
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 2018-03-27
      • 2012-06-19
      相关资源
      最近更新 更多