Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox?

Drachenbauer

Drachenbauer

Aktives Mitglied
Hallo

Ich möchte Das Dialogfenster meines Spieles umfärben, und dabei auch sämtliche Farben der verwendeten Komponenten anpassen, von diesen standard-Blaugrau-Tönen aus MetalLookAndFeel zu Sandfarben.

Wie ändere ich dabei die Konturen der Komponenten JCombobox und JButton und die hellere Kontur vom JButton, die erscheint, wenn die Maus darüber fährt?

So sieht es im Moment aus:
Mein Dialogfeld 1.png

Mein Dialogfeld 2.png


Und so loll es später aussehen (Bilder mit GIMP bearbeitet, desshalb auvh noch blaue Pixel am Text in der Combobox.)
Mein Dialogfeld 1 gewünscht.png

Mein Dialogfeld 2 gewünscht.png


Das untere Bild jeder Gruppe zeigt den Rahmen auf dem Button, der bei der Maus drüber erscheint.
 
Drachenbauer

Drachenbauer

Aktives Mitglied
Die kontur vom Button ist jetzt zwar geändert, aber es erscheint kein spezieller Rahmen mehr, wenn ich mit der Maus darüber gehe...
Wie bekomme ich den trotz angepasster Konturfarbe zurück, und zwar ebenfalls in einem Sand-baige-ton?
 
Drachenbauer

Drachenbauer

Aktives Mitglied
Mein Dialogfeld 4.png


So sieht es jetzt aus.

Die Kontur der Combobox ist noch blaugrau (beim hinein-zoomen sehe ich noch ein zweites helleres Blaugrau an den vertikalen Seiten).

Und der Button erhält keine besondere Kontur mehr, wenn ich mit der Maus drüber gehe.
Ich möchte aber, dass er weiterhin eine bekommt, nur eben in passender Sandfarbe.
 
Drachenbauer

Drachenbauer

Aktives Mitglied
Wenn ich das Tool für den UIManager aufrufe, steht bei Button.border "javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@1467df00".

Wie finde ich den eigentlichen Inhalt davon?
Das scheint nämlich keine einfache LineBorder zu sein, sondern etwas komplexeres.
Also möchte ich versuchen, das mit meinen Sandfarben zu reproduziereen und dann Button.border zuweisen.
 
Zuletzt bearbeitet:
Drachenbauer

Drachenbauer

Aktives Mitglied
Java:
System.out.println(UIManager.getBorder("Button.border"));
in meiner Frame-Klasse gibt:
javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@3feba861
wenn ich meinen bisherigen Button.border-Versuch deaktiviere.

Wenn ich meinen aktuellen Versuch mit nur einer LineBorder nutze, bekommt mein Button keinen Fokusrahmen und der Button meiner Combobox wird schmaler.

Wie finde ich den genauen Aufbau der Kontur von dem Button?
 
Zuletzt bearbeitet:
Drachenbauer

Drachenbauer

Aktives Mitglied
Ich brauche den genauen Aufbau der Standard-Border von dem Button.
Da scheint nämlich auch irgendwie dieser Fokus-Rahmen drin enthalten zu sein.
 
Drachenbauer

Drachenbauer

Aktives Mitglied
ich weiß aber nicht, in welcher Klasse da die Kontur des Buttons zusammengesetzt wird.
 
Drachenbauer

Drachenbauer

Aktives Mitglied
Ich suche nach einem Stück code, das ich in der Main-Methode meines Projektes replizieren und dessen Ergebnis ich dann Button.border im UIManager zuweisen kann, um den Speziellen Rahmen für Maus drüber wieder zu bekommen, allerdings in meinen Sandfarben.

Und ich habe immernoch nicht herausgefunden, welche Eigenschaft im UI-Manager die Border ausschließlich vom Textfeld der Combobox setzt, ohne den Pfeil-Button mit zu umschließen (der bekommt ja seine Border von Button.border im UIManager).
 
Drachenbauer

Drachenbauer

Aktives Mitglied
Bedeutet das, dass es für diese spezielle Kontur der ComboBox keinen Eintrag im UIManager gibt?

In dem bugreport steht was von "ComboBoxEditor border" aber das finde ich nicht in den Eigenschaften-Listen für den UIManager.
 
mihe7

mihe7

Top Contributor
Soweit ich das noch richtig im Kopf habe, ging es darum, dass der Border für die Komponenten innerhalb der JComboBox über die Children separat einzustellen ist. Müsste ich aber nochmal nachlesen.
 
Drachenbauer

Drachenbauer

Aktives Mitglied
Aber ich weiß noch nicht, welches die Border von dem Editor der Combobox über den UIManager einstellen kann.

Ich habe gerade festgestellt, dass die Klasse ComboBoxEditor kein setBorder hat.
Also woher kommt diese spezielle Border dann?
 
Zuletzt bearbeitet:
N

Neumi5694

Bekanntes Mitglied
Du wirst eh an deine Grenzen stoßen, wenn du andere Look&Feels verwendest. Und ja, nicht für alle Farben und Formen gibt's Einträge im UIManager, manches ist hardgecodet. Von diesem speziellen Stück Grafik kann ich's nicht sagen, aber im Allgemeinen gehen die Einträge im UI-Manager nicht auf jedes kleine Detail ein. Wobei ... bei Metal könntest du sogar noch Glück haben, die Leute haben damals reichlich Fleißarbeit geleistet.
 
Drachenbauer

Drachenbauer

Aktives Mitglied
Leider kann ich den letzten Beitrag nicht mehr bearbeiten...

Irgendwoher muss es ha die Anweisungen haben, die Kanten der Komponenten dunkelblau anzuzeigen, also mus es auch einen Weg geben, dem Programm einen anderen Farbwert dafür mitzuteilen.

Oder gibt es vielleicht einen Weg, basierend auf diesem standard-Look&Feel ein eigenes zu erstellen, dass ich als Datei, Java-Klasse oder so meinem Projekt hinzufügen und dann verwenden kann und bei dem ich Zugriff auf wirklich alle Farbwerte der Darstellung habe?
 
N

Neumi5694

Bekanntes Mitglied
Der Quellcode liegt normalerweise der JDK bei (ansonsten runterladen).
Musst halt etwas im entsprechenden Look & Feel graben.

Mihe hat ja gemeint, dass du dir die Children der Combobox anschauen solltest. Hast du schon in diese Richtung geschnuppert?

Und nein, es gibt keine Standardmethode, um auf alles zuzugreifen, was intern gemacht wird.
Beispiel: Überschreib die paintComponent ein Panels, zeichne eine Linie irgendwo rein.
Dieses Panel hat - ohne dass du das extra ausprogrammierst - keine Eigenschaft, welches diese Linie beschreibt, sie wurde in der paintComponent Methode gezeichnet ohne nach außen sichtbare Parameter.
 
N

Neumi5694

Bekanntes Mitglied
Der Quellcode liegt normalerweise der JDK bei (ansonsten runterladen).
Musst halt etwas im entsprechenden Look & Feel graben.

Mihe hat ja gemeint, dass du dir die Children der Combobox anschauen solltest. Hast du schon in diese Richtung geschnuppert?

Und nein, es gibt keine Standardmethode, um auf alles zuzugreifen, was intern gemacht wird.
Beispiel: Überschreib die paintComponent ein Panels, zeichne eine Linie irgendwo rein.
Dieses Panel hat - ohne dass du das extra ausprogrammierst - keine Eigenschaft, welches diese Linie beschreibt, sie wurde in der paintComponent Methode gezeichnet ohne nach außen sichtbare Parameter.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
P AWT Fenster aktualisieren, nachdem ich JComboBox ändere AWT, Swing, JavaFX & SWT 9
K Swing Wie ändere ich die default action für Drag&Drop AWT, Swing, JavaFX & SWT 6
Hatsi09 GUI Input Farbe ändern AWT, Swing, JavaFX & SWT 0
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 11
F Drag&Drop mit Transparenter Farbe bei PNG AWT, Swing, JavaFX & SWT 0
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
H JFreeChart BarDiagramm Balken der gleichen Serie unterschiedliche Farbe zuordnen AWT, Swing, JavaFX & SWT 2
cool_brivk24 Swing Button Farbe ändern AWT, Swing, JavaFX & SWT 2
R Farbe zu einem Eckpunkt generieren AWT, Swing, JavaFX & SWT 2
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
W Farbe des Fensters AWT, Swing, JavaFX & SWT 2
krgewb Swing JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 4
M Ausgabe der HSL oder RGB Zusammensetzung einer Farbe (JColorChooser AWT, Swing, JavaFX & SWT 1
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
C Arrow Farbe bei JComboBox AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
S Farbe ändern bei der paint-Methode AWT, Swing, JavaFX & SWT 5
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
X mouseover verändert ungewollt die farbe AWT, Swing, JavaFX & SWT 4
D Swing Farbe aus Pixel vom JFrame auslesen AWT, Swing, JavaFX & SWT 17
T Swing JScrollPane Farbe der Scrollbar AWT, Swing, JavaFX & SWT 3
J Swing Farbe wählen ohne JColorChooser 2 AWT, Swing, JavaFX & SWT 23
S Farbe von JButton ändern AWT, Swing, JavaFX & SWT 5
T Jbutton Click farbe ändern AWT, Swing, JavaFX & SWT 4
C AWT Wie setze ich die Farbe "leuchtetgrün"? AWT, Swing, JavaFX & SWT 4
B Swing Button Farbe AWT, Swing, JavaFX & SWT 3
M Hover-Farbe über Hintergrundfarbe legen AWT, Swing, JavaFX & SWT 3
N Farbe abziehen AWT, Swing, JavaFX & SWT 3
R Farbe von Buttons stimmt nicht AWT, Swing, JavaFX & SWT 2
B Cursor Farbe ändern AWT, Swing, JavaFX & SWT 6
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
T DefaultTableCellRenderer Farbe bestimmter Zelle ändern AWT, Swing, JavaFX & SWT 2
D JComboBox jedes Item mit einer anderen Farbe AWT, Swing, JavaFX & SWT 10
P JLabel Farbe/Bild ändern aus MouseListener heraus AWT, Swing, JavaFX & SWT 3
P 2D-Grafik Neue Farbe für einen Teilbereich einer Linie? AWT, Swing, JavaFX & SWT 8
K 2D-Grafik Fehler beim Farbe auslesen AWT, Swing, JavaFX & SWT 3
T JTable Zellen Farbe AWT, Swing, JavaFX & SWT 13
D JTabel: Überschrift, Abstand zwischen Tabellen, Spalten-Farbe ändern AWT, Swing, JavaFX & SWT 2
D Swing JTable, Zellen-Farbe über Koordinaten ändern AWT, Swing, JavaFX & SWT 9
N SWT-Widgets in Farbe AWT, Swing, JavaFX & SWT 21
F JButton Text-Farbe bei Disabled AWT, Swing, JavaFX & SWT 2
C Farbe eines ToolTipTextes eines Buttons AWT, Swing, JavaFX & SWT 4
D JTabbedPane - Farbe ändern im Bereich hinter den Reitern AWT, Swing, JavaFX & SWT 2
Q 3D-Grafik Cube Farbe setzen zur Laufzeit. AWT, Swing, JavaFX & SWT 10
I Schrift und Farbe formatieren, und zwar pro Linie... AWT, Swing, JavaFX & SWT 4
A SWT - Farbe von Text auf Label ändern AWT, Swing, JavaFX & SWT 2
M Combobox soll Farbe einer Komponente setzen AWT, Swing, JavaFX & SWT 2
N Swing JEditorPane mit Farbe und Font AWT, Swing, JavaFX & SWT 2
chik Button beschriften und Farbe zufällig anordnen AWT, Swing, JavaFX & SWT 2
S JSlider Track Breite und Farbe AWT, Swing, JavaFX & SWT 2
D SWT TabItem Farbe der Schrift ändern AWT, Swing, JavaFX & SWT 3
L JFreeChart Farbe von Balken AWT, Swing, JavaFX & SWT 5
C Welche Farbe hat die Auswahl in einer JTable? AWT, Swing, JavaFX & SWT 2
O AWT Zeichne mit eigener Farbe AWT, Swing, JavaFX & SWT 3
N Farbe einer einzelnen Zeile einer JTable ändern AWT, Swing, JavaFX & SWT 10
S JSplitPane ändert Farbe nicht AWT, Swing, JavaFX & SWT 4
O Hgr- Farbe einer JTable ändert sich nicht AWT, Swing, JavaFX & SWT 11
V JComboBox - Farbe in der Auswalliste AWT, Swing, JavaFX & SWT 7
GambaJo Farbe eines JFrames AWT, Swing, JavaFX & SWT 2
K Icon auf JButton mit Wechsel der Farbe AWT, Swing, JavaFX & SWT 2
D Farbe bei einem JButton wechseln AWT, Swing, JavaFX & SWT 4
L Farbe des Auswahlrechtecks bei selektierter Tabellenzeile AWT, Swing, JavaFX & SWT 9
M JComboBox Selected-Background Farbe AWT, Swing, JavaFX & SWT 5
K Farbe eines Pixels in einem Bild AWT, Swing, JavaFX & SWT 7
I JLabel Farbe AWT, Swing, JavaFX & SWT 1
L wie setze ich die Farbe des Pfeils in einer JComboBox? AWT, Swing, JavaFX & SWT 5
G Farbe der Markierung einer Componente ändern AWT, Swing, JavaFX & SWT 2
G JOptionPane mit andere Farbe AWT, Swing, JavaFX & SWT 8
G JFrame und Farbe AWT, Swing, JavaFX & SWT 4
M Farbe eines strings in JTextArea AWT, Swing, JavaFX & SWT 2
J JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 2
F Farbe für den Hintergrund eine BorderLayout-Teils AWT, Swing, JavaFX & SWT 5
G Bild mit transparente farbe für den IE6 AWT, Swing, JavaFX & SWT 5
G Farbe ändern bei Klick auf einen Kreis AWT, Swing, JavaFX & SWT 5
B transparente Farbe AWT, Swing, JavaFX & SWT 3
N Die Zeile einer JTable verändert beim klicken ihre Farbe? AWT, Swing, JavaFX & SWT 7
H JButton Farbe verändern AWT, Swing, JavaFX & SWT 4
G Bild a auf Bild b, bestimmte Farbe (zb Weiß) durchsichtig AWT, Swing, JavaFX & SWT 7
G JTable Zeile mit Farbe füllen AWT, Swing, JavaFX & SWT 2
I Farbe aus einem Icon herauslesen AWT, Swing, JavaFX & SWT 5
A JProgressBar: Farbe im Windows Look&Feel ändern. AWT, Swing, JavaFX & SWT 1
E Spalten Farbe ändern AWT, Swing, JavaFX & SWT 3
J Cell Farbe in JTable AWT, Swing, JavaFX & SWT 31
U Farbe von Kreis AWT, Swing, JavaFX & SWT 3
B JFrame Farbe ändern AWT, Swing, JavaFX & SWT 15
J Auf Button - Druck soll Rechteck Farbe verändern AWT, Swing, JavaFX & SWT 8
vogella JTextArea mit Farbe des Hintergrundes AWT, Swing, JavaFX & SWT 2
Kirua Problem: Farbe Dinamic zu wechseln AWT, Swing, JavaFX & SWT 9
G hintergrund farbe vom flow layout ändern AWT, Swing, JavaFX & SWT 2
S Farbe der Canvas an X,Y bestimmen? AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Anzeige

Neue Themen


Oben