Swing JSlider

Doc

Aktives Mitglied
Hallo,
hab ein zwei Problemchen und hab im Internet bisher keine Lösungen gefunden.

Ich hab einen JSlider aber kann seine Breite nicht eintellen.
Ich möchte jeden Majortick beschriften, daher brauch ich viel Abstand zwischen den Majorticks, damit die Beschriftungen nicht übereinander stehen.
Aber mein JSlider bleibt einfach relativ klein.

Und das zweite ist, dass ich die Majorticks gerne anderst beschriften möchte, anstatt den normalen Zahlen. Geht das?

Danke schonmal.

Grüße,
Doc
 
Zuletzt bearbeitet:

Doc

Aktives Mitglied
Der Code wird kaum was bringen. Ich finde die Befehle nicht mit denen man die Breite einstellt. Deshalb dieser Thread :)

Ich hab bisher nur den Silder erstellt und ein paar Einstellungen vorgenommen.

Java:
final JFrame frame = new JFrame();
frame.setLayout(new FlowLayout());
frame.setVisible( true );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

JSlider slider = new JSlider(JSlider.HORIZONTAL, 1, 20, 1);
slider.setSnapToTicks(true);
slider.setMajorTickSpacing(1);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.setPaintTrack(false);
frame.add(slider);
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer
Die einfachste Variante ist es, die Möglichkeiten des LayoutManagers auszunutzen.
Dein Code mal etwas angepasst:
Java:
import java.awt.*;
import javax.swing.*;

public class SliderDemo {
  public static void main(String[] args) {
    JFrame frame = new JFrame("JSlider-Demo");
    frame.setSize(400, 300);
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

    JSlider slider = new JSlider(JSlider.HORIZONTAL, 1, 20, 1);
    slider.setSnapToTicks(true);
    slider.setMajorTickSpacing(1);
    slider.setPaintTicks(true);
    slider.setPaintLabels(true);
    slider.setPaintTrack(false);
    frame.add(slider, BorderLayout.NORTH);
    frame.setVisible( true );
  }
}

Ansonsten kannst du die Größe der Komponente in einem FlowLayout (das hast du oben gesetzt) auch per setPreferredSize(...) festlegen.
 

Doc

Aktives Mitglied
Mit setSize hat sich an der Größe leider nichts geändert. Ich bräuchte schon einen Befehl mit dem ich die Größe direkt einstellen kann, abhängig von der Anzahl der Werte im Slider.
 

L-ectron-X

Gesperrter Benutzer
Dann kann man auch mal in die Java-API-Doku schauen...
Component#setPreferredSize(...)
Java:
import java.awt.*;
import javax.swing.*;

public class SliderDemo {
  public static void main(String[] args) {
    JFrame frame = new JFrame("JSlider-Demo mit FlowLayout");
    frame.setLayout(new FlowLayout());
    frame.setSize(600, 300);
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

    JSlider slider = new JSlider(JSlider.HORIZONTAL, 1, 20, 1);
    slider.setPreferredSize(new Dimension(350, 50));
    slider.setSnapToTicks(true);
    slider.setMajorTickSpacing(1);
    slider.setPaintTicks(true);
    slider.setPaintLabels(true);
    slider.setPaintTrack(false);
    frame.add(slider);
    frame.setVisible( true );
  }
}
 

Doc

Aktives Mitglied
Danke dir! Dachte es liegt an setPrefferedSize :-(

Kann mir noch jemand sagen ob, und wenn ja wie, man die Majorticks anders beschriften kann?
Genauer gesagt: Ich bräuchte dort andere Zahlen die ich selbst wählen möchte.
Ausserdem wär es super wenn ich die Beschriftung in mehreren Zeilen machen könnte, so dass ich unter einen Major-Tick mehrere Zahlen untereinander schreiben kann. Ich hoffe das geht.

EDIT:
Hab nun was dazu gefunden. Man kann Custom Labels erstellen.

Habs nun so gemacht und es funktioniert gut, nur bräuchte ich pro Tick 2-3 Zahlen untereinander.
Irgendwelche Ideen? ;( Ist echt wichtig für mich, ich hoffe das funktioniert irgendwie.

Java:
Hashtable<Integer, JLabel> labels = new Hashtable<Integer, JLabel>();
labels.put(1, new JLabel("Test"));
labels.put(10, new JLabel("Test2"));
labels.put(20, new JLabel("Test3"));
labels.put(30, new JLabel("Test4\nTest5"));
slider.setLabelTable(labels);

Der Versuch in Zeile 5 mit "\n" tut leider nicht :-( Ist bei einem Label wohl nicht vorgesehen einen Zeilenumbruch zu machen, oder?
Ich hoffe jemand hat ne Idee ;(
 
Zuletzt bearbeitet:

Doc

Aktives Mitglied
spitze! du hast mir echt wahnsinnig geholfen.

DANKE!

EDIT:
Jetzt ist mir noch eine Sache aufgefallen. Bei mehreren Zeilen wird der Text linksbündig ausgegeben, ich bräuchte aber eine Zentrierung, damit alles schön unter dem Tick steht.

Geht das? :(

Nochmal Edit:
Habs mit <CENTER>...</CENTER> hinbekommen! :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Frage zum Schieberegler JSlider AWT, Swing, JavaFX & SWT 5
T Java: Zwei abhängige JSlider machen nicht das, was sie sollen AWT, Swing, JavaFX & SWT 4
D Swing JSlider Tip Anzahl AWT, Swing, JavaFX & SWT 3
J JSlider sichtbar AWT, Swing, JavaFX & SWT 7
J Swing JSlider - Form des Reglers AWT, Swing, JavaFX & SWT 6
J JSlider Color Ticks AWT, Swing, JavaFX & SWT 1
J JSlider - MajorTick AWT, Swing, JavaFX & SWT 0
Z JSlider im Modalen-Fenster AWT, Swing, JavaFX & SWT 0
A Swing JLabel/JTextField Inhalt mit JSlider verändern AWT, Swing, JavaFX & SWT 12
A Swing 2 JSlider verknüpfen und mit einem JTextField vergleichen, dann Ausgabe AWT, Swing, JavaFX & SWT 5
A Slider (JSlider?) AWT, Swing, JavaFX & SWT 7
D JSlider "laggt" nach überschreiben der paint methode AWT, Swing, JavaFX & SWT 2
A Swing JSlider erscheint doppelt AWT, Swing, JavaFX & SWT 2
K 2D-Grafik Kontrastanpassung über einen JSlider AWT, Swing, JavaFX & SWT 2
A Swing Bestimmte Werte anzeigen JSlider() AWT, Swing, JavaFX & SWT 2
Y Mehrere JSlider verlinken AWT, Swing, JavaFX & SWT 6
M JSlider-Wert ändern, ohne ein ChangeEvent auszulösen AWT, Swing, JavaFX & SWT 4
C Aussehen von JSlider ändern AWT, Swing, JavaFX & SWT 7
D Swing jSlider soll selber weiterwandern, je nach zeit der musik AWT, Swing, JavaFX & SWT 5
D JSlider und Textfeld AWT, Swing, JavaFX & SWT 2
C Swing Tickspacing in JSlider AWT, Swing, JavaFX & SWT 3
C Swing Mehrere JSlider sollen aufeinander reagieren AWT, Swing, JavaFX & SWT 4
Y JSlider Wert auslesen (Kategorien) AWT, Swing, JavaFX & SWT 2
T jSlider-Value als Float in jLabel ausgeben AWT, Swing, JavaFX & SWT 2
O Swing JSlider mit doppelter Value AWT, Swing, JavaFX & SWT 6
F JSlider Design ändern AWT, Swing, JavaFX & SWT 6
B JSlider - Wert am Mouszeiger anzeigen lassen AWT, Swing, JavaFX & SWT 6
E JSlider synchron halten AWT, Swing, JavaFX & SWT 4
J Swing jSlider nur auf bestimmte werte beschränken AWT, Swing, JavaFX & SWT 15
X Audio Player: Fenster mit Play/Stop-Button erstellen, mit JSlider Lautstärke ändern AWT, Swing, JavaFX & SWT 6
R JSlider AWT, Swing, JavaFX & SWT 9
M Swing JSlider, Popup-Box AWT, Swing, JavaFX & SWT 3
J JSlider mit Double Werten AWT, Swing, JavaFX & SWT 5
J JSlider auf JTextPane? AWT, Swing, JavaFX & SWT 2
M Jslider Beschriftung AWT, Swing, JavaFX & SWT 6
R JLabel und JSlider dynamisch erzeugen? AWT, Swing, JavaFX & SWT 3
E jSlider und ChangeListener AWT, Swing, JavaFX & SWT 2
S JSlider Track Breite und Farbe AWT, Swing, JavaFX & SWT 2
T Swing JSlider und Adjustment-Listener wollen nicht so recht AWT, Swing, JavaFX & SWT 2
O JSlider - wie unterscheide ich mit Maus verändert und durch setValue verändert. AWT, Swing, JavaFX & SWT 16
T JSlider: ChangeListener löst dreimal aus? AWT, Swing, JavaFX & SWT 4
B JSlider in JCombobox AWT, Swing, JavaFX & SWT 9
J JSlider wird nicht neugezeichnet AWT, Swing, JavaFX & SWT 8
J Einen JSlider ähnlich wie in OO3 AWT, Swing, JavaFX & SWT 5
G JSlider in Applet AWT, Swing, JavaFX & SWT 4
K Unterschiedliches Aussehen der JSlider? AWT, Swing, JavaFX & SWT 4
I Listener für einen JSlider AWT, Swing, JavaFX & SWT 1
G beschriftung von JSlider AWT, Swing, JavaFX & SWT 7
H JSlider mit 2 Werten AWT, Swing, JavaFX & SWT 7
L JSlider Beschriftung AWT, Swing, JavaFX & SWT 1
A JSlider umdrehen AWT, Swing, JavaFX & SWT 15
D JSlider und JMF player verbinden AWT, Swing, JavaFX & SWT 6
J JSlider regaiert unter Java 1.6 nicht mehr AWT, Swing, JavaFX & SWT 7
N JSlider: Kosmetik - snapToTicks AWT, Swing, JavaFX & SWT 3
T JComponents abändern/modifizieren z.b. JSlider AWT, Swing, JavaFX & SWT 2
N Nicht linearer JSlider! AWT, Swing, JavaFX & SWT 4
T JSlider getValue() erst nach dem Loslassen des Mauszeigers AWT, Swing, JavaFX & SWT 3
Z JSlider-Knob wenden AWT, Swing, JavaFX & SWT 8
L JSlider stumm geworden? AWT, Swing, JavaFX & SWT 2
I JSlider - klick ignorieren AWT, Swing, JavaFX & SWT 4
I JSlider-Schieberegler AWT, Swing, JavaFX & SWT 7
T JSlider Schiebereglerbild ändern AWT, Swing, JavaFX & SWT 4
U JSlider - Probleme bei der Darstellung AWT, Swing, JavaFX & SWT 3
H ChangeListener für JSlider AWT, Swing, JavaFX & SWT 6
P JSlider automatisch bewegen AWT, Swing, JavaFX & SWT 3
G JSlider AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben