Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字符串变量设置为滑块上的值?_Java_String_Parsing - Fatal编程技术网

Java 如何将字符串变量设置为滑块上的值?

Java 如何将字符串变量设置为滑块上的值?,java,string,parsing,Java,String,Parsing,我正在尝试创建一个标签,该标签将显示特定滑块的当前选定值。目前,我可以插入标签并将其放到窗口上。我不知道如何获得滑块的值以显示在标签中。我非常确定我需要解析信息,因为它是两种不同的值类型 我们将非常感谢您为我们提供的帮助 编辑时添加的代码: import javax.swing.*; import javax.swing.event.*; import java.awt.*; public class ColorSliders extends JFrame implements ChangeL

我正在尝试创建一个标签,该标签将显示特定滑块的当前选定值。目前,我可以插入标签并将其放到窗口上。我不知道如何获得滑块的值以显示在标签中。我非常确定我需要解析信息,因为它是两种不同的值类型

我们将非常感谢您为我们提供的帮助

编辑时添加的代码:

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

public class ColorSliders extends JFrame implements ChangeListener {
    ColorPanel canvas = new ColorPanel();
    JSlider red = new JSlider(0, 255, 255);
    JSlider blue = new JSlider(0, 255, 0);
    JSlider green = new JSlider(0, 255, 0);

    // Creating labels to measure output of Slider Value
    JLabel redLabelValue = new JLabel("Red Value: ");
    JLabel greenLabelValue = new JLabel("Green V: ");
    JLabel blueLabelValue = new JLabel("Blue: ");

    public ColorSliders() {
        super("Color Slide");
        setSize(350, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);

        red.setMajorTickSpacing(50);
        red.setMinorTickSpacing(10);
        red.setPaintTicks(true);
        red.setPaintLabels(true);
        red.addChangeListener(this);

        green.setMajorTickSpacing(50);
        green.setMinorTickSpacing(10);
        green.setPaintTicks(true);
        green.setPaintLabels(true);
        green.addChangeListener(this);

        blue.setMajorTickSpacing(50);
        blue.setMinorTickSpacing(10);
        blue.setPaintTicks(true);
        blue.setPaintLabels(true);
        blue.addChangeListener(this);

        JLabel redLabel = new JLabel("Red: ");
        JLabel greenLabel = new JLabel("Green: ");
        JLabel blueLabel = new JLabel("Blue: ");
        GridLayout grid = new GridLayout(4,1);
        FlowLayout right = new FlowLayout(FlowLayout.LEFT);
        setLayout(grid);

        JPanel redPanel = new JPanel();
        redPanel.setLayout(right); 
        redPanel.add(redLabel);
        redPanel.add(red);
        redPanel.add(redLabelValue);
        add(redPanel);

        JPanel greenPanel = new JPanel();
        greenPanel.setLayout(right);
        greenPanel.add(greenLabel);
        greenPanel.add(green);
        greenPanel.add(greenLabelValue);
        add(greenPanel);

        JPanel bluePanel = new JPanel();
        bluePanel.setLayout(right);
        bluePanel.add(blueLabel);
        bluePanel.add(blue);
        bluePanel.add(blueLabelValue);
        add(bluePanel);
        add(canvas);

        setVisible(true);
    }

    public void stateChanged(ChangeEvent event) {
        JSlider source = (JSlider) event.getSource();
        if (source.getValueIsAdjusting() != true) {
            Color current = new Color(red.getValue(), green.getValue(), 
                    blue.getValue());
            String blueVal = Integer.parseInt(blue.getValue());
            blueLabelValue.setText(blueVal);
            canvas.changeColor(current);
            canvas.repaint();
        }
    }

    public Insets getInsets() {
        Insets border = new Insets(45, 10, 10, 10);
        return border;
    }

    public static void main(String[] arguments) {
        ColorSliders cs = new ColorSliders();
    }
}

class ColorPanel extends JPanel {
    Color background;

    ColorPanel() {
        background = Color.red;
    }

    public void paintComponent(Graphics comp) {
        Graphics2D comp2D = (Graphics2D) comp;
        comp2D.setColor(background);
        comp2D.fillRect(0, 0, getSize().width, getSize().height);
    }

    void changeColor(Color newBackground) {
        background = newBackground;
    }
}
更改:

String blueVal = Integer.parseInt(blue.getValue());


您必须从
字符串创建
字符串,而不是从
字符串创建
整数,首先需要使用以下命令获取滑块的值:

int value = <JSliderFieldName>.getValue();
尝试
int value = <JSliderFieldName>.getValue();
String labelText = "JSlider Value: " + value;