Größe und Farbe vom JButton festlegen

Scratchy

Mitglied
Hallo zusammen,

ich mache langsam aber stetig Fortschritte bei meiner Mathe-App. Nun habe ich zwei JButton hinzugefügt (einer der "Richtig" und einer der "Falsch" anzeigen soll). Ich möchte nun gerne doch die Größe und die Farbe der Buttons bestimmen. Irgendwie habe ich da gerade ein Denkfehler oder es klappt vlt. nicht wegen meinem LayoutManager ?

Hier ist der Ausschnitt:
Java:
JButton button1 = new JButton("Korrekt");
		button1.setSize(50, 40);
		button1.setBackground(Color.red);
		JButton button2 = new JButton("Falsch");
		button2.setBackground(new Color(222, 61, 3));
		p2.setAlignmentX(Component.CENTER_ALIGNMENT);
		p2.add(button1);
		p2.add(button2);

Hier seht ihr den gesamten Code (das ist mir etwas peinlich den zu zeigen ;)) :
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.util.Random;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class Beta extends JFrame /*implements ActionListener*/{

	Random randomzahl;
	private JLabel labelfrage;
	private JLabel labelantwort;
	private JLabel label;
	private JLabel leer2;
	private JLabel leer3;
	private JLabel leer4;
	private JLabel leer5;
	private JLabel leer6;
	private JLabel leer7;
	private JLabel leer8;
	private int a;
	private int b;
	private int c;
	private int d;
	private JFrame f;
	private JPanel p1;
	private JPanel p2;
	private JButton button1;
	private JButton button2;
	
	public Beta(){
		System.out.println("Yes Sir");
		
		Fensterdeklaration();
	}
		
		
		
	


	public void Fensterdeklaration() {
		Font schriftart = new Font("Serif", Font.BOLD, 10);
		randomzahl = new Random();
		a = randomzahl.nextInt(4) + 1;
		b = randomzahl.nextInt(3) + 1;
		c = randomzahl.nextInt(2) + 4;
		d = a + b;
		f = new JFrame("Fenster von der Beta");
		p1 = new JPanel();
		p2 = new JPanel();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(400,500);
		Color color = new Color(randomzahl.nextInt(255), randomzahl.nextInt(255), randomzahl.nextInt(255));
		f.setBackground(color);
		p1.setLayout(new BoxLayout(p1, BoxLayout.Y_AXIS));
		label = new JLabel("Mathe-App");
		label.setFont(new Font("Arial", Font.CENTER_BASELINE, 13));
		labelfrage = new JLabel(a + " " + "+" + " " + b + "    " + "=");
		labelfrage.setFont(new Font("Helvetica", Font.ITALIC, 83));
		labelfrage.setAlignmentX(Component.CENTER_ALIGNMENT);
		labelantwort = new JLabel("" + c);
		labelantwort.setAlignmentX(Component.CENTER_ALIGNMENT);
		labelantwort.setFont(new Font("Serif", Font.BOLD, 67));
		leer1 = new JLabel(" ");
		leer2 = new JLabel(" ");
		leer3 = new JLabel(" ");
		leer4 = new JLabel(" ");
		leer5 = new JLabel(" ");
		leer6 = new JLabel(" ");
		leer7 = new JLabel(" ");
		leer8 = new JLabel(" ");
		//leer.setAlignmentX(Component.CENTER_ALIGNMENT);
		System.out.println("A:  " + a);
		System.out.println("B:  " + b);
		System.out.println("C:  " + c);
		p1.add(label); // Leeres Label --> Leerzeile
		p1.add(leer2); // Leeres Label --> Leerzeile
		p1.add(leer3); // Leeres Label --> Leerzeile
		p1.add(leer4); // Leeres Label --> Leerzeile
		p1.add(leer5); // Leeres Label --> Leerzeile
		p1.add(leer6); // Leeres Label --> Leerzeile
		p1.add(labelfrage);
		p1.add(leer7); // Leeres Label --> Leerzeile
		p1.add(leer8); // Leeres Label --> Leerzeile
		p1.add(labelantwort);
		JButton button1 = new JButton("Korrekt");
		button1.setSize(50, 40);
		button1.setBackground(Color.red);
		JButton button2 = new JButton("Falsch");
		button2.setBackground(new Color(222, 61, 3));
		p2.setAlignmentX(Component.CENTER_ALIGNMENT);
		p2.add(button1);
		p2.add(button2);
		p1.add(p2);
		f.add(p1);
		f.setVisible(true);
		Check();
	}

	private void Check() {
		if(a+b==c){
			System.out.println("Trifft zu!");
		}if(a+b!=c){
			System.out.println("Trifft nicht zu!");
		}
		
	}






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

	}

	/*@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		
	}*/

}

Danke für Eure Hilfe :)
 

Bug Fisher

Bekanntes Mitglied
Schau dir die nachfolgende einfache Klasse mal an, da siehst du, welche Schritte notwendig sind, um die Größe und Farbe eines JButtons zu verändern.
Wenn du es gut/richtig/schicker haben möchtest, solltest du bei selected, hover, pressed, enabled jeweils andere Inhalte zeichnen.

Java:
@SuppressWarnings("serial")
class ScratchyButton extends JButton {
	private Color color;

	public ScratchyButton(final String text, final Dimension size, final Color color) {
		super(text);
		setPreferredSize(size);
		setContentAreaFilled(false);
		this.color = color;
	}

	@Override
	protected void paintComponent(Graphics g) {
		g.setColor(color);
		g.fillRect(0, 0, getWidth(), getHeight());
		super.paintComponent(g);
	}

}
 

Scratchy

Mitglied
Danke für die Antwort. Ich hätte nicht gedacht, dass es so kompliziert sei. Leider wird bei mir Dimension als Fehler angezeigt ?
Java:
class Buttons extends JButton {
			private Color color;
			private Dimension d;
		 
			public Buttons(final String text, final Dimension size, final Color color) {
				super(text + "Korrekt");
				setPreferredSize(newDimension(40,50));
				setContentAreaFilled(false);
				this.color = color;
			}
		 
			@Override
			protected void paintComponent(Graphics g) {
				g.setColor(Color.green);
				g.fillRect(0, 0, getWidth(), getHeight());
				super.paintComponent(g);
			}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
Yonnig JavaFX Größe von WebView an Content anpassen AWT, Swing, JavaFX & SWT 3
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
D JavaFX Größe des Bild an ImageView anpassen AWT, Swing, JavaFX & SWT 3
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
B Größe der Parent-Component dynamisch an children anpassen AWT, Swing, JavaFX & SWT 30
L JavaFX AnchorPane an die Größe der Scene oder Window binden? AWT, Swing, JavaFX & SWT 3
K JavaFX Component Größe an Inhalt anpassen AWT, Swing, JavaFX & SWT 11
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
R Größe von Scene und stage an grid anpassen AWT, Swing, JavaFX & SWT 4
M Java FX größe der shapes anpassen AWT, Swing, JavaFX & SWT 0
L Swing JPanel Größe anpassen AWT, Swing, JavaFX & SWT 6
E Wie kann ich ein JLabel auf größe der schriftlänge setzten? AWT, Swing, JavaFX & SWT 2
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
J Swing Pane im SplitPane automatische Größe aktivieren AWT, Swing, JavaFX & SWT 0
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
L JavaFX ListView Größe anpassen AWT, Swing, JavaFX & SWT 1
Neumi5694 Größe von Komboboxen neu berechnen AWT, Swing, JavaFX & SWT 3
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
P Größe und Ausrichtung von Komponenten festlegen AWT, Swing, JavaFX & SWT 13
I CSS - backgroundImage - Größe automatisch an den Container anpassen AWT, Swing, JavaFX & SWT 1
C Größe des Mauszeigers ermitteln AWT, Swing, JavaFX & SWT 5
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
K GridBagLayout verändert die größe? AWT, Swing, JavaFX & SWT 1
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D JavaFX Alle Knöpfe auf die gleiche Größe AWT, Swing, JavaFX & SWT 14
G JFrame - manuell Größe verändern AWT, Swing, JavaFX & SWT 6
M LayoutManager GridBagLayout passt seine größe nicht an AWT, Swing, JavaFX & SWT 3
F Gui weicht von Designpreview ab (kein fensterrahmen, andere größe) AWT, Swing, JavaFX & SWT 13
A JPanel größe verändern AWT, Swing, JavaFX & SWT 4
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
W GridBagLayout Größe geben AWT, Swing, JavaFX & SWT 1
S Swing JFrame hat nicht die Größe, die ich eingegeben habe AWT, Swing, JavaFX & SWT 3
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
H AWT Fenster- und JLabel-Größe automatisch anpassen AWT, Swing, JavaFX & SWT 2
T Swing Größe des Randes AWT, Swing, JavaFX & SWT 2
C LayoutManager JFrame größe und ausrichtung + Position von Fensterelementen AWT, Swing, JavaFX & SWT 2
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D SWT Window passt Größe nicht an AWT, Swing, JavaFX & SWT 4
N JPanel größe wissen/festlegen vor dem Anzeigen AWT, Swing, JavaFX & SWT 3
U Größe eines Button im Menü ändern AWT, Swing, JavaFX & SWT 1
G JavaFX Größe der Parentknoten AWT, Swing, JavaFX & SWT 5
R JPanel-Größe verändert sich nicht. Warum? AWT, Swing, JavaFX & SWT 5
T Swing Aktuelle Größe eines Textes in einem Label darstellen AWT, Swing, JavaFX & SWT 3
A JPanel oder GridLayout Größe festsetzten AWT, Swing, JavaFX & SWT 4
F Swing JComboBox - Frage zur Größe AWT, Swing, JavaFX & SWT 11
X Swing Größe eines Fensters JFrame / Frame AWT, Swing, JavaFX & SWT 5
SimonRap Swing JFrame Größe zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Größe der JFrame Decorations herausfinden? AWT, Swing, JavaFX & SWT 4
O Swing Jpanel autom. auf JFrame Größe bringen AWT, Swing, JavaFX & SWT 6
M Swing JLabel mit fester größe nachträglich formatieren AWT, Swing, JavaFX & SWT 2
A JComponent Größe AWT, Swing, JavaFX & SWT 8
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
S Swing TextPane größe beschränken AWT, Swing, JavaFX & SWT 2
R Ellipse2D ändert Größe AWT, Swing, JavaFX & SWT 3
H Swing JButton größe ändern AWT, Swing, JavaFX & SWT 5
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
P JPanel Größe ändern AWT, Swing, JavaFX & SWT 22
I Größe eines rotierten Images AWT, Swing, JavaFX & SWT 3
C Button Größe einstellen klappt nicht (setBounds) AWT, Swing, JavaFX & SWT 8
S 2D-Grafik Canvas Problem(Größe) AWT, Swing, JavaFX & SWT 6
R Größe/Anordnung der Gui-Elemente automatisch? AWT, Swing, JavaFX & SWT 6
S Die größe eines JButton ändern AWT, Swing, JavaFX & SWT 7
U feste Größe für den Zeichenbereich eines JFrames AWT, Swing, JavaFX & SWT 4
L Graphics.drawImage() - Output-Größe entspricht nicht Parametern AWT, Swing, JavaFX & SWT 10
P Tatsächliche Größe für Applet AWT, Swing, JavaFX & SWT 3
C Swing GridBag-Probleme (Größe und Ausrichtung) AWT, Swing, JavaFX & SWT 3
K JFrame Größe ändern AWT, Swing, JavaFX & SWT 4
M jTable - Größe beim Erzeugen AWT, Swing, JavaFX & SWT 4
hdi Swing JFrame Größe ermitteln AWT, Swing, JavaFX & SWT 6
S Swing jFrame auf maximale Größe setzten AWT, Swing, JavaFX & SWT 7
Z größe der komponenten bestimmen AWT, Swing, JavaFX & SWT 16
X Alte Frame-Größe beim wiederholten Aufruf AWT, Swing, JavaFX & SWT 5
I Größe von JPanel ändern AWT, Swing, JavaFX & SWT 6
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
T Die Größe einer JTextArea an Ihren Parent JPanel anpassen. AWT, Swing, JavaFX & SWT 5
L JFrame größe in einem ActionEvent ändern AWT, Swing, JavaFX & SWT 4
G LayoutManager BorderLayout WEST Bereich auf maximale Größe beschränken AWT, Swing, JavaFX & SWT 19
T Inhalt von einem Tab an JTabbedPane größe ausrichten? AWT, Swing, JavaFX & SWT 2
A Größe von Textfield bestimmen AWT, Swing, JavaFX & SWT 9
S Button Größe - Anfänger AWT, Swing, JavaFX & SWT 13
0 JPanel nicht an größe des JFrames anpassen AWT, Swing, JavaFX & SWT 3
S Swing Größe von JLabels verändern sich in einem Panel unterschiedlich AWT, Swing, JavaFX & SWT 6
B JPanel Größe regulieren AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben