JButton Hintergrundfarbe ändern .setBackground(Color.Red) funktioniert nicht?
wie schon oben angesprochen ich würde gerne denn gesamten Button mit Rot füllen ohne ein icon zu verwenden und nicht nur den rand
Da wird nur so ein kleiner rand rot
3 Antworten
Schade, dass du meine bisherigen Ratschläge, die ich auf deine älteren Frage gegeben habe, ignoriert hast. Des Weiteren solltest du deine Oberflächenkomponenten mit Layout Managers ausrichten, um die GUI flexibel zu halten. Mit einem Null-Layout und setBounds zu arbeiten, ist hingegen ziemlich schlechter Stil.
Bezüglich der Hintergrundfarbe: Das funktioniert bei mir.
import java.awt.*;
import javax.swing.*;
public class Example {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame();
JButton button = new JButton("Click me");
button.setBackground(Color.RED);
frame.getContentPane().add(button);
frame.pack();
frame.setVisible(true);
});
}
}
Ich vermute, dass du ein spezifisches Look & Feel setzt.
Da sich meine Vermutung hier bestätigt hat, poste ich auch an dieser Stelle noch einmal die Lösungsmöglichkeiten:
a) Man schreibt sich eine eigene Button-Klasse und überschreibt dabei die paintComponents-Methode.
b) Verhindern, dass das Look & Feel für den Button greift:
// prevent l&f painting
imageButton.setContentAreaFilled(false);
// set opaque, because it will be set to false in step before
imageButton.setOpaque(true);
// set background color
imageButton.setBackground(Color.RED);
(...) das Problem,ist das ich an einem Projekt mit anderen Leuten Zusammenarbeite (...)
Ich kann dich nur ermutigen: Setze dich durch. Wenn noch mehr Leute davon überzeugt sind, auf statische Variablen zu bauen, wäre ein guter Weg, ist das mehr als bedenklich. Umso länger man es nicht ändert, umso unflexibler, unwartbarer und insgesamt schlechter wird das Endprodukt, sofern es überhaupt zu einem erfolgreichen Ende kommt.
btn.setOpaque(true);
btn.setBackground(...);
Teste ich morgen danke ich habe es bus jetzt mit einem kabel gelöst auf dem der Text stand welches ich dem Button hinzugefügt habe aber da hatte ich Probleme beim Text zentrieren wenn das hilft bin ich dir seht dankbar
Uff.. Am Besten solltset du dich von Swing lösen und alles nochmal mit JavaFX machen, dann kannst du auch ordentlich mit CSS designen
ist für einen Anfänger vlt. nicht die beste Methode, denke auch nicht das er Ahnung von CSS hat weder JavaFX
CSS lernt man sehr früh, zumindest bei uns... Java Swing hab ich damals (zum Glück) übersprungen und hab direkt mit FX angefangen
Dann weißt dus jetzt. Ich empfehle dir, Java FX zu lernen, aber mach erst mal dein Projekt fertig. Und lass mich es danach ausprobieren ;D
Ich habe vorher diverse andere programmierSprachen praktiziert
Mein ganzes Projekt ist so aufgebaut ich hätte ganz gerne eine lösung für diese art von code
https://stackoverflow.com/questions/8194460/swing-setting-jbuttons-background
Vielleicht hilft dir das weiter... Ansonsten müsste ich mir echt dein Code anschauen
Ich bin ein wenig auf deine Ratschläge eingegangen das Problem,ist das ich an einem Projekt mit anderen Leuten Zusammenarbeite
Danke übrigens ich teste deines wen. Das von alexbyjava nicht funktioniert und werde mir Layout Manager anschauen weil ich die ohne Einwilligung verändern kann