当前位置: 首页 > 知识库问答 >
问题:

JSlider getValue()条件

翟新
2023-03-14

我一直试图用JSlider做一个反馈系统。我希望JLabel设置为不同的文本根据不同的JSlider值。例如,如果值小于25,我希望JLabel将文本显示为坏,如果值在25和50之间,如果值在50和75之间,则显示为好,如果值高于75,则显示为最佳。下面是代码:

"'

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;

public class slider {

JFrame frame;
JPanel panel;
JLabel label;
JLabel rating;
JSlider slider;

slider() {

    frame = new JFrame("Slider Demo");
    panel = new JPanel();
    label = new JLabel();
    slider = new JSlider(JSlider.VERTICAL, 0, 100, 50);
    rating = new JLabel();
    slider.setPreferredSize(new Dimension(400, 200));
    slider.setPaintTicks(true);
    slider.setMinorTickSpacing(10);
    slider.setPaintTrack(true);
    slider.setMajorTickSpacing(25);
    slider.setPaintLabels(true);
    slider.setFont(new Font("MV Boli", Font.PLAIN, 15));
    label.setFont(new Font("MV Boli", Font.PLAIN, 25));
    rating.setFont(new Font("MV Boli", Font.PLAIN, 25));
    label.setText("Please rate us!  ");
    rating.setText("Fine");

    slider.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            int value = slider.getValue();
            if (value < 25)
                rating.setText("Bad!");
            if (value > 25 && value < 50)
                ;
            rating.setText("Fine!");

            if (value > 50 && value < 75)
                ;
            rating.setText("Good!");

            if (value > 75)
                ;
            rating.setText("Best!");
        }
    });
    panel.setLayout(new FlowLayout());
    panel.add(label);
    panel.add(slider);
    panel.add(rating);
    frame.add(panel);
    frame.setSize(420, 420);
    frame.setVisible(true);

}

public static void main(String args[]) {
    new slider();
}

}

''问题是标签没有按照我的要求更改文本。当我设置时,它以值50开始,标签读起来很好,实际上很好,但是当我向上或向下移动滑块时,标签被设置为最佳,并且无论我如何移动滑块,标签都不会改变。请帮帮我。我根据自己的知识编写了这段代码。我不知道是否有其他方法可以让这个评级系统工作。

共有1个答案

楚浩然
2023-03-14

您有额外的分号 if语句末尾的code>,您不应该这样做。相反,它应该如下所示:

更新:

正如@c0der正确指出的那样,使用any if比让程序检查代码中的每个if语句更有效。因此,下面是根据这一点修改的。

public void stateChanged(ChangeEvent e) {
    int value = slider.getValue();
    System.out.println(value);
    if (value < 25)
        rating.setText("Bad!");
    else if (value > 25 && value < 50)
        rating.setText("Fine!");
    else if (value > 50 && value < 75)
        rating.setText("Good!");
    else if (value > 75)
        rating.setText("Best!");
}
 类似资料:
  • 问题内容: 我正在尝试将其编译。.我有一个带有firstname和lastname字段的表,并且我有一个字符串,例如“ Bob Jones”或“ Bob Michael Jones”等。 事实是,例如我姓鲍勃,姓迈克尔·琼斯 所以我想 但是它说未知列“ firstlast” ..有人可以帮助吗? 问题答案: 您提供的别名用于查询的输出-它们本身在查询中不可用。 您可以重复表达: 或包装查询

  • s-if 通过 s-if 指令,我们可以为元素指定条件。当条件成立时元素存在,当条件不成立时元素不存在。 提示:当不满足条件时,San 会将元素从当前页面中移除,而不是隐藏。 <span s-if="isOK">Hello San!</span> s-if 指令的值可以是任何类型的表达式。 <span s-if="isReady && isActive">Hello San!</span> 提

  • 条件操作符 对于依赖于特定条件的用例,这些操作符可以做到这一点。 内容 defaultIfEmpty every

  • 我需要 在Hibernate条件中。由于这个问题,我知道如何将分组结果作为的列表: 我不知道如何添加HAVING子句。我想,它类似于,但是我如何引用计数呢? 有没有办法在查询中引用结果元组元素?

  • 以下是在MariaDB中使用CRUD 操作的条件列表。条件通常与语句一起使用。参考下表列出的一部分条件 - 编号 条件 描述 1 在满足个以上的条件时使用。 2 在满足任何一个条件时使用。 3 当条件满足时使用它。 4 在子句中使用简单的模式匹配(通配符)。 5 在子句中使用正则表达式匹配 6 它用作多个条件的替代 7 它用来否定一个条件 8 它用于测试一个值。 9 它用来测试一个非值。 10 它

  • 条件熵 参考 https://zh.wikipedia.org/wiki/条件熵 假设有随机变量$$(X,Y)$$,其联合概率分布为:$$P(X=x_i, Y=y_i)=p_{ij}$$ $$P(X=x_i, Y=y_j)=p_{ij}$$,$$i=1,2,...,n; j=1,2,...,m$$ 条件熵描述了在已知随机变量$$X$$的值的前提下,随机变量$$Y$$ 的信息熵还有多少。同其它的信息

  • 条件 条件提供了语言的刘控制,否则就是纯粹的静态语言。提供的条件有导入、混入、函数以及更多。下面的例子纯粹示例,并不是使用建议。 if / else if / else 这没什么好说的,跟一般的语言一致,if表达式满足(true)的时候执行后面语句块,否则,继续后面的else if或else. 下面这个例子,根据overload的条件,决定是使用padding还是margin. overload-

  • 在编程时,我们遇到一些场景,我们必须从给定的路径集中选择路径。 在这种情况下,我们需要条件语句。 条件语句有助于我们做出决策并执行正确的操作。 以下是大多数编程语言中的典型决策结构的一般形式。 JavaScript支持if语句(包括其变体)和switch语句。 除了JavaScript中提供的条件之外,CoffeeScript还包括unless声明,否定if,甚至更多。 以下是CoffeeScri