JSlider Track Breite und Farbe

Sejla

Mitglied
Hallo,

Ich habe eine einfache java MainApplication Klasse die eine Instanz von MainView Klasse erzeugt. Die MainView Klasse ist von JFrame abgeleitet und da verwende ich ein JSlider.

Ich bin gerade dabei einbisschen das Aussehen von dem Slider zu ändern. Ich möchte die Hintergrundfarbe von dem Track von dem Slider weiss haben und sonst den ganzen Slider transparent machen. Das thumb Icon setzen habe ich geschafft und das habe ich so gemacht.

Die Struktur von meiner Klassen schaut ungefärh so aus:

Java:
public class MainApplication {

    public MainApplication() {   
        MainView view = new MainView();
    }

    private static void initUI () {
        Resources resources = Resources.getInstance();
        Icon thumbIcon = resources.getIconSliderThumb();
 
        UIDefaults defaults = UIManager.getDefaults();
        defaults.put("Slider.verticalThumbIcon", thumbIcon);
        
        defaults.put("Slider.altTrackColor", Color.WHITE);
        defaults.put("Slider.trackWidth", 50);
       
    }

   public static void main(String[] args) {
 
       initUI();

       MainApplication gui = new MainApplication();
    }
}

public class MainView extends JFrame {
 ...

  private void createZoomRuler() {
        JSlider zoomRuler = new JSlider(JSlider.VERTICAL, 10, 16, 15);
        zoomRuler.setMajorTickSpacing(1);
        zoomRuler.setMinorTickSpacing(1);
        zoomRuler.setPaintLabels(true);
       // zoomRuler.setPaintTicks(true);
        zoomRuler.setPaintTrack(true);
        zoomRuler.setSnapToTicks(true);
  }

...

}

Ich habe es so versucht über Key-Value setzen bei UIDefaullts aber es scheint nicht zu funktionieren, ads einzige was geht ist das thumb icon, die wird richtig angezeigt. Die Hintegrundfarbe von dem Track ist weietr grau udn die breite ist sehr klein.

Ich habe folegndes link gefunden, wo selche key werte für swing komponneten definiert sind und JSlider ist auch dabei.

Link: Customizing a JSlider Look and Feel : JSlider : Swing : Java Tutorial

Hat jemand eine Idee wieso es nicht funktioniert oder was ahbe ich da falsch gemacht?

Danke!

lg
Sejla
 

Ebenius

Top Contributor
Nur so am Rande: Was genau sollen denn die Zeilen 30 bis 38? Da wird eine lokale Variable [c]zoomRuler[/c] initialisiert, um sie einfach wieder zu vergessen...

Mach lieber mal ein KSKB und dazu eine Zeichnung (oder ganz genaue Erklärung) was sich genau wie ändern soll.

Ebenius
 

Sejla

Mitglied
Hallo Ebeneius,

Die lokale variable zoomRuler gehört selbstverständlich nicht da, sie ist eine private variable von der MainView Klasse, ich habe es im forum so manuel geschrieben. Den Rest der Code in der MainApplication Klasse ist so wie im Code.

Es geht also um darum, dass der Slider nicht so gut ausschaut. Ein einfaches Slider mit dem Track in silber farbe und einem auch so einfachem Thumb zum schieben. Das ist das Standard Look im Swing, also Metal Look. Ich möchte nicht den ganzen Skin ändern sondern nur an manchen Komponenten das zu ändern was mir so nicht gefällt.

Ich habe mir vorgestellt etwas wie den Slider im Google Maps zu haben, also zumindest den Track in weisser Farbe und dass ich da die Breite von dem Track auch selbst anpassen kann. Und den Thumb zum schieben dass ich da eigenes Icon verwenden kann.

Wie gesagt, das mit dem Thumb habe ich geschafft, also mein eigenes icon zu setzem auf dem thumb anstelle von swing default thum. Meine eigene Klasse Resources liefert mir den Icon.

Das habe ich mit diesen Zeilen geschafft:
UIManager.getDefaults();
defaults.put("Slider.verticalThumbIcon", thumbIcon);

Die Breite von dem Track sollte man auch irgendwie auf dieselbe weise einstellen können. Da habe ich mir gedacht den Key "Slider.trackWidth" zu verwenden, weil das steht in der tabelle auf dem link die ich im vorherigen beitrag gepostet habe. Das hat aber nicht funktioniert, hat sich nichts auf dem aussehen geändert.

Ich hoffe dass es jetzt zumindets klar ist, was ich erreichen will?

Ich habe nicht viel Erfahrung damit wie die Swing Komponenten im Hintergrund implementiert sind und die ganze komplexe Sachen die man auf den ersten Blick auch nicht erkennt. Ich möchte nicht damit sehr viel Zeit verbringen wie ich eigene JSlider Komponente erzeuge, weil ich mich, wie gesagt, mit den ganzen komplexen Sachen nicht ganz auskenne und ich auch unter dem zeitdruck stehe.

Falls jemand eine Idee hat wie ads möglich wäre, wäre ich sehr dankabr.

liebe Grüsse
Sejla
 
Ä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
D Swing JSlider AWT, Swing, JavaFX & SWT 11
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
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
M JavaFX Progressbar bar und track Komponente zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
lumo SWT Composite Mouse Track Lisetner AWT, Swing, JavaFX & SWT 2
Jose05 Javafx Label Höhe=Breite AWT, Swing, JavaFX & SWT 1
W JavaFX Button - optimale Breite berechnen AWT, Swing, JavaFX & SWT 1
J Gridpane Breite in Scrollpane automatisch anpassen AWT, Swing, JavaFX & SWT 2
G JavaFX - bugs bei der ermittlung der breite der nodes AWT, Swing, JavaFX & SWT 3
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
R Java FX - Fxml - relative Größenangaben für Breite und Höhe einer TextArea AWT, Swing, JavaFX & SWT 8
C JavaFX TableColumn - TableColumn Breite AWT, Swing, JavaFX & SWT 8
D Swing Breite einer HTML Tabelle in einer JTextPane AWT, Swing, JavaFX & SWT 6
Z Java Draw -JFrame finde nicht die Mitte & höhe, breite AWT, Swing, JavaFX & SWT 7
F Breite beim GridBagLayout festlegen AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
A trotz setSize keine breite AWT, Swing, JavaFX & SWT 4
M Wie ermittele ich die Breite und Höhe meines Displays in Pixel AWT, Swing, JavaFX & SWT 3
K JSpinner in passender Breite erstellen oder automatisch anpassen AWT, Swing, JavaFX & SWT 2
E Breite eines JButton dynamisch ändern AWT, Swing, JavaFX & SWT 3
S JTable Spalte "normale" Breite? AWT, Swing, JavaFX & SWT 5
N Swing Optimale Höhe eine JTextPanes bei festgelegter Breite bestimmen AWT, Swing, JavaFX & SWT 23
L TreeViewerColumn - gesamte TreeView-breite nutzen? AWT, Swing, JavaFX & SWT 5
M 2 Buttons mit derselben Breite AWT, Swing, JavaFX & SWT 9
4 Shapes Informationen wie Breite usw. mitgeben AWT, Swing, JavaFX & SWT 5
B JFileChooser breite der Spalten? AWT, Swing, JavaFX & SWT 5
B Label breite ermitteln vor dem rendern? AWT, Swing, JavaFX & SWT 7
A FormLayout Panel-Breite AWT, Swing, JavaFX & SWT 7
Dit_ Swing JComboBox | Breite des Scrollbalkens AWT, Swing, JavaFX & SWT 4
D JFreeChart Breite (width) ändern AWT, Swing, JavaFX & SWT 6
Rudolf Swing Swing Button breite stanardisieren AWT, Swing, JavaFX & SWT 2
N Swing JPanel Nur Breite festlegen AWT, Swing, JavaFX & SWT 7
M breite eines "drawString()-Strings" AWT, Swing, JavaFX & SWT 2
F JTabbedPane Reiter breite AWT, Swing, JavaFX & SWT 4
F 2D-Grafik Problem mit höhe||breite eines JFrames AWT, Swing, JavaFX & SWT 4
M SWT Breite von Textfeld nur ohne Layout änderbar AWT, Swing, JavaFX & SWT 2
E Wie Breite und Höhe eines Panels festlegen? AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben