Java - JSlider: Zahlen hin- und herschieben

...komplette Frage anzeigen

1 Antwort

Ich bin noch Anfänger, habe mir das aber jetzt mal als Übungsaufgabe genommen (nur nach Deiner Beschreibung, ohne das Video zu sehen) und habe es sogar hinbekommen.
Es klappt also so, es ist aber nicht gesagt, dass das die optimale Lösung ist:

package slider;

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Slider extends JFrame implements ChangeListener {
private static final long serialVersionUID = 1L;
JSlider slider1 = new JSlider();
JLabel label = new JLabel();

public Slider() {
    slider1.setValue(0);
    slider1.setMaximum(100);
    slider1.setMinimum(0);
    setTextOnlabel();

    setLayout(new FlowLayout());
    add(slider1);
    slider1.addChangeListener(this);
    add(label);

    setSize(300, 100);
    setLocationRelativeTo(null);
    setVisible(true);
}

void setTextOnlabel() {
    label.setText(String.valueOf(slider1.getValue()));
}

@Override
public void stateChanged(ChangeEvent e) {
    setTextOnlabel();
}

}

main:

package slider;

public class SliderShow {
public static void main(String[] args) {
    new Slider();
}
}

Dich scheint es wohl nicht mehr zu interessieren, (:o|
aber immerhin war es eine interessante Übung für mich.

1
@Oubyi

Entschuldigung, ich habe viel um die Ohren und nicht mehr nachgeschaut! Danke für deinen Code! Ich konnte einen kürzeren finden!

Du nimmst einfach ein vordefiniertes Ereignis des JButtons, welches MouseDragged heißt.

In dem Body von MouseDragged schreibt du z. B. folgenden Code:

int a = slider.getValue(); String z = Integer.toString(a); lblNewLabel.setText(z);

So sollte das funktionieren, habe es aber noch nicht ausprobiert, weil es von einem Freund stammt.

LG und danke für deine Mühe! Werde deinen Code demnächst mal ausprobieren!

0
@Nuke1818

Von einem JButton war eigentlich nicht die Rede. Und ich sehe keinen Nachteil darin hier das ChangeEvent statt MouseDragged zu nutzen.
Und dass Dein Dreizeiler kürzer ist als:
label.setText(String.valueOf(slider1.getValue()));
sehe ich eigentlich auch nicht.
Aber so lange es klappt ist das wohl egal.

0

Was möchtest Du wissen?