java - 如何通过将 ChangeListener 添加到 JSlider 来更新整型变量

标签 java swing event-listener jslider changelistener

我现在对 JSlider 有点麻烦,我对 java 还很陌生,所以这可能很容易纠正。

我有一个 JSlider,如下所示: JSlider Gui Image

我想要做的是让“0”不断更新为 JSlider 的值。我添加了一个 ChangeListener,并在 JSlider 上调用了 .getValue() 并设置为等于 int 变量,如下图所示:JSlider Code

这个 int 变量已在类中声明,因此它不是任何方法的本地变量,System.out.println() 证明 ChangeListener 正在工作,因为 JSlider 的值不断更新并打印在控制台中,但是int 变量似乎没有在此 ChangeListener 之外保存其值,因此不会在我想要的边框中显示当前值。

有人知道如何解决这个问题吗?

所有相关代码都在这里:

JPanel sectorSlider = new JPanel();

sectorSlider.setLayout(new BorderLayout());
TitledBorder sectorSliderBorder;

final int sectorNumberMin = 0;
final int sectorNumberMax = 50;
final int sectorNumberInitial = 12;
        JSlider sectorNumberSlider = new JSlider(JSlider.HORIZONTAL,
        sectorNumberMin, sectorNumberMax, sectorNumberInitial);
       sectorNumberSlider.setMajorTickSpacing(10);
sectorNumberSlider.setMinorTickSpacing(5);
sectorNumberSlider.setPaintTicks(true);
sectorNumberSlider.setPaintLabels(true);

sectorNumberSlider.addChangeListener(new ChangeListener() {
    @Override
    public void stateChanged(ChangeEvent event) {
        sectorValue = sectorNumberSlider.getValue();
        System.out.println(sectorValue);
    }
});

sectorSliderBorder = BorderFactory.createTitledBorder(blackline, "Number of Sectors: " +sectorValue);

sectorSliderBorder.setTitleJustification(TitledBorder.CENTER);
sectorSlider.setBorder(sectorSliderBorder);
sectorSlider.add(sectorNumberSlider);

最佳答案

will not display the current value in the border where I want it to.

那是因为您没有更改边框的属性。

您所做的只是更改变量的值。该变量与边界没有任何关联。您刚刚在创建边框时使用变量的值来初始设置边框的标题。

ChangeListener 中的代码应该是:

sectorSliderBorder.setTitle( ... );

关于java - 如何通过将 ChangeListener 添加到 JSlider 来更新整型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49089142/

相关文章:

java - GPS项目的Android应用程序

javascript - 当鼠标按下时,如何根据鼠标悬停在哪个单元格上更改 html 表格单元格的颜色?

javascript - 不确定为什么 Javascript eventListener 没有链接到 SVG 元素?

java - JScrollPane 设置启用为 false

java - 与特定事件监听器关联的方法列表?

java - 如何在 swagger ApiOperation 注释响应变量中传递类型的 Class

java - 匿名数组索引而不是 switch 语句?

java - 使用 Java 访问 Azure 中的 Office 365(sharepoint REST api)

java - JTextPane - 具有两种样式的短语

java - 在 Swing GUI 中选择继承还是组合