简体   繁体   English

如何使用Java使两个GUI滑块彼此独立工作?

[英]How can I make two GUI sliders work independently from one another using Java?

Here's the code I have been working on below: 这是我一直在下面处理的代码:

package ASG2;

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

public class GUI extends JFrame
{
    JSlider slider;
    JLabel label;

    public GUI()
    {
        setLayout(new FlowLayout());
        slider = new JSlider(JSlider.HORIZONTAL, 0, 5, 0);
        slider.setMajorTickSpacing(1);
        slider.setPaintTicks(true);
        add(slider);

        label = new JLabel("Current value: 0");
        add(label);

        event b = new event();
        slider.addChangeListener(b);

        setLayout(new FlowLayout());
        slider = new JSlider(JSlider.HORIZONTAL, 0, 5, 0);
        slider.setMajorTickSpacing(1);
        slider.setPaintTicks(true);
        add(slider);

        label = new JLabel("Current value: 0");
        add(label);

        event c = new event();
        slider.addChangeListener(c);
    }

    public class event implements ChangeListener
    {
        public void stateChanged(ChangeEvent a)
        {
            int value = slider.getValue();

            label.setText("Current value: " + value);
        }
    }

    public static void main(String args[])
    {
        GUI asg2 = new GUI();
        asg2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        asg2.setSize(500,500);
        asg2.setVisible(true);
        asg2.setTitle("Slider program");
    }
}

I got two sliders and only the bottom one is retrieving the current value. 我有两个滑块,只有最下面的一个正在检索当前值。 The top one is sliding correctly, but the current value won't change. 顶部滑动正确,但当前值不会更改。 Is there any way I can make both work independently from one another? 我有什么办法可以使两者彼此独立工作?

only the bottom one is retrieving the current value. 只有最底端的一个正在检索当前值。

slider = new JSlider(JSlider.HORIZONTAL, 0, 5, 0);
add(slider);
...
slider = new JSlider(JSlider.HORIZONTAL, 0, 5, 0);

That is because the "slider" variable is set to the last JSlider created. 这是因为“ slider”变量设置为最后创建的JSlider。

Get rid of the slider variable. 摆脱滑块变量。

Instead your listener code should be something like: 相反,您的侦听器代码应类似于:

public void stateChanged(ChangeEvent a)
{
    JSlider slider = (JSlider)e.getSource(); // added
    int value = slider.getValue();

    label.setText("Current value: " + value);
}

So now you have access to the component that generated the event. 因此,现在您可以访问生成事件的组件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用Java中的Swing使代码在GUI中工作? - How can I make my code work in a GUI using Swing in Java? 我如何实现一个java GUI,它具有多行按钮彼此间隔开的多行按钮 - How can I implement a java GUI that has multiple rows of buttons spaced equally apart from one another 如何使Java GUI从一个GUI过渡到另一个GUI - How to have a java gui transition from one gui to another 如何从另一个GUI类调用一个GUI类? - How can I call one GUI class from another GUI class? 如何从一个使用SQL查询独立排序的表中合并两个结果集? - How to combine two result sets from one table sorted independently using one SQL query? 如何用Java中的另一个JPanel替换两个JPanel之一? - How can I replace one of two JPanels with another JPanel in Java? 在Selenium Webdriver中从一个选项卡导航到另一个选项卡后,按钮的xpath不起作用,如何使它起作用? - After navigating from one tab to another in selenium webdriver, the xpath for a button does not work, how can I make it work? 如何从另一个 java 程序独立运行 java 程序? - how to run a java program from another java program independently? 如何将用户从GUI提供的输入存储到Java中的字符串数组? 我正在使用Java swing创建GUI - How can I store inputs given by the user from GUI to a string array in java? I am using java swing to create the GUI 我如何使用另一个类的方法从一个Java类的MD数组中删除重复项 - how can i remove duplicates from a MD array in one java class, using a method from another class
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM