java - 将 JSliders 给出的两个数字相加

标签 java addition jslider

假设我们想将用户用两个 JSlider 指定的两个数字 (0 <= n <= 20) 相加并打印出来。问题是当我将 JSliders 的值分配给 x 和 y 变量时,它们只是不保存新值并保存 0 (首先它们用 0 初始化),代码如下:

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

public class GUIJframe extends JFrame {

    private JPanel jp1 = new JPanel();
    private JTextField jtf = new JTextField();
    private JTextField jtf2 = new JTextField();
    private JSlider js1 = new JSlider(0,20);
    private JSlider js2 = new JSlider(0,20);
    private int x = 0;
    private int y = 0;

    public GUIJframe () {

        setSize(400,400);
        setLocation(200,200);
        setLayout(new GridLayout(5,1));
        add(js1);
        add(jtf);
        add(js2);
        add(jtf2);
        Handler h = new Handler();
        Handler2 h2 = new Handler2();
        js1.addChangeListener(h);
        js2.addChangeListener(h2);
        setVisible(true);
        System.out.println(x + y);

    }

    private class Handler implements ChangeListener {
        @Override
        public void stateChanged(ChangeEvent e) {
            JSlider js = (JSlider) e.getSource();

            jtf.setText( "" + js.getValue() );
            x = js.getValue();
        }
    }
    private class Handler2 implements ChangeListener {
        @Override
        public void stateChanged(ChangeEvent e) {
            JSlider js = (JSlider) e.getSource();

            jtf2.setText( "" + js.getValue() );
            y = js.getValue();
        }
    }
}

最佳答案

x,y 都为零时,您仅打印一次x+y,这是在您移动 slider 之前。 您可以在 HandlerHandler1 中添加 System.out.println(x + y);,然后如果您移动 slider ,它将显示总和。

关于java - 将 JSliders 给出的两个数字相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50038626/

相关文章:

Java Swing - JSlider 和 JCombobox 导致运行时错误

java - 如何将十六进制值从 RGB 添加到 Jpanel

java - 我想使用 PHP 开发一个 Android 聊天应用程序。我该怎么做?不使用 Google Firebase Cloud Messeging 和 AWS

java - maven 从 pom 内部运行 maven install

java - 在 Java 的循环中获取字符输入(使用扫描仪)的正确方法是什么?

java - 我的 addbyAge() 函数出了什么问题,导致一个人不知何故失踪?

xml - 将两个数组中的 XML 数据相加

c - 如何在每个有符号整数之间添加 "+"

java - 如何根据指定的 JTextField 移动多个 JSlider

java - 序列化如何协调静态成员?