使用两个JFrame滑块作为最小值和最大值设置器,怎么也只允许min达到最大值?

时间:2019-06-14 16:27:56

标签: java swing jframe

我有两个要使用的JFrame滑块,第一个太设置最小值,第二个太设置最大值。显然,如果有人将最小值移到看起来不正确的最大值之后(也许行不通?那部分还不够)

我的问题是我不知道将最小值锁定为最大值(或下面的1)的方法。例如:最大值为15,最小值不能超过15,滑块锁定在15标记。

        minSlider.setFont(minSlider.getFont());
        minSlider.setMaximum(20);
        minSlider.setMinimum(1);
        minSlider.setToolTipText("");
        minSlider.setValue(7);
        minSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        getContentPane().add(minSlider, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 170, 280, -1));

        maxSlider.setMaximum(20);
        maxSlider.setMinimum(1);
        maxSlider.setToolTipText("");
        maxSlider.setValue(14);
        getContentPane().add(maxSlider, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 240, 280, -1));

        jLabel1.setText("Min:");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 180, -1, -1));

        jLabel2.setText("Max:");
        getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 250, -1, -1));

1 个答案:

答案 0 :(得分:0)

在您的addChangeListener()上添加一个maxSlider

这将不断告诉最小滑块什么是最大值。

使用此代码:

maxSlider.addChangeListener(new ChangeListener() {
  public void stateChanged(ChangeEvent e) {
         minSlider.setMaximum(maxSlider.getValue());
  }
});