Buttons werden nicht angezeigt

lord239123

Bekanntes Mitglied
Hallo gemeinsam,

ich bin noch ein ziemlicher Java-Anfänger und habe auch in der Schule Informatik gewählt.
Dort haben wir jetzt die Aufgabe bekommen, einen Ampelwarteschlangensimulator zu programmieren,
was an sich eigentlich auch ganz gut geklappt hat.

Bis jetzt hat die Simulation immer automatisch begonnen, was ich allerdings änder wollte, allerdings gibt es dabei ein kleines Problem: Die beiden Buttons start und stop werden aus irgendwelchen Gründen
nicht angezeigt, wobei mir der Lehrer leider nicht helfen konnte.

Kann mir vielleicht einer von euch bei diesem Problem helfen?


Hier die paint()-Methode, die eigentlich fehlerfrei funktioniert:

Java:
import java.awt.*;

import javax.swing.*;


public class Anzeige extends JPanel{
	
	public void paint(Graphics g){
	  
		//Farben/ Schrift
		Color white = new Color(255, 255, 255);
		Color black = new Color(0, 0, 0);
		Font schrift = new Font("Arial",Font.BOLD,20);
		
		//Anzeige der Strasse
		g.setColor(black);
		g.fillRect(0, 0, getWidth(), getHeight());
		g.setColor(white);
		g.fillRect(1, getHeight()/2-100, getWidth()-2, 200);//Haupstrasse
		g.fillRect(0, 0, 70, getHeight());					//Nebenstrasse
		g.fillRect(0, getHeight()/2-110, 78, 218);
		g.setColor(black);
		g.fillOval(70, getHeight()/2-120, 15, 20);			//Ecken abrunden
		g.fillOval(70, getHeight()/2+100, 15, 20);			//Ecken abrunden
		g.setColor(Color.DARK_GRAY);
		g.drawLine(80, getHeight()/2-100, 80, getHeight()/2+100);	//Linie 1
		g.drawLine(78, getHeight()/2-100, 78, getHeight()/2+100);   
		g.drawLine(1, getHeight()/2+110, 69, getHeight()/2+110);    //Linie 2
		g.drawLine(1, getHeight()/2+108, 69, getHeight()/2+108);	//Linie 2	
		
		//Strassenstreifen zeichnen
		int strassenstreifen = 80;
		while(strassenstreifen < getWidth()){
			g.setColor(black);
			g.drawLine(strassenstreifen, getHeight()/2, strassenstreifen+50, getHeight()/2);
			strassenstreifen = strassenstreifen + 100;
		}
		
		//Ausgbe der Werte
		g.setColor(white);
		g.setFont(schrift);
		g.drawString("Stehende Autos: " + Simulation.stAutos, 100, 20);
		g.drawString("Gesamtzahl der Autos: " + (int)Simulation.Autos, 100, 50);
		
		//Ampel
		g.setColor(Color.DARK_GRAY);
		g.drawRect(getWidth()/2-25, getHeight()/2+150, 50, 100);
		
		if(Simulation.Ampelanzeige.equals("Grün")){
			g.setColor(Color.DARK_GRAY);
			g.fillOval(getWidth()/2-20, getHeight()/2+157, 40, 40);
			g.setColor(Color.green);
			g.fillOval(getWidth()/2-20, getHeight()/2+203, 40, 40);
		} else{
			g.setColor(Color.red);
			g.fillOval(getWidth()/2-20, getHeight()/2+157, 40, 40);
			g.setColor(Color.DARK_GRAY);
			g.fillOval(getWidth()/2-20, getHeight()/2+203, 40, 40);
		}
		
		//Autos
		int anzahl = Simulation.stAutos;
		int ort = 100;
		for(int i=1; i<=anzahl; i++){
			g.setColor(Simulation.auto);
			g.fillRect(ort, getHeight()/2-60, 40, 20);
			
			g.setColor(Color.yellow);
			g.drawString("T", ort+12, getHeight()/2-42);
			g.setColor(black);
			g.fillOval(ort+5, getHeight()/2-45, 10, 10);
			g.fillOval(ort+25, getHeight()/2-45, 10, 10);
			ort = ort + 50;
		}
	}
}

Hier ist die Klasse Simulation, die anscheinend den Fehler verursacht:

Java:
import java.awt.*;

import javax.swing.*;


public class Simulation {
	
	static int stAutos = 0;
	static float Autos = 0;
	static int schleife = 1;
	int zufall;
	//Ampelwerte
	static int Ampelfarbe = 1;         //0 = Rot, 1 = Grün
	static String Ampelanzeige ="rot";
	static Anzeige a = new Anzeige();
	
	//Farbe des Autos festlegen
			static int rot = (int)(Math.random()*256);
			static int grün = (int)(Math.random()*256);
			static int blau = (int)(Math.random()*256);
			static Color auto = new Color(rot, grün, blau);
	
	//Frame erstellen
	static JFrame frame = new JFrame();
	static Simulation simu = new Simulation();
	
	static //Panel für Start und Stop
	JPanel panel = new JPanel();
	
	public static void main(String[]args){
		
		//Frame einstellen
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocation(150, 150);
		frame.setSize(1300, 600);
		frame.add(BorderLayout.CENTER,a);
	  	frame.setVisible(true);
		
		//Panel für Start und Stop
		panel.setLocation(Simulation.frame.getWidth()/2, 0);
		
		
		//Startbutton
		JButton start = new JButton("Start");
		panel.add(start);
		panel.setSize(250, 100);
	    start.setBounds(0,0,100,100);
	    panel.add(start);  
	    
	    //Startbutton
	  	JButton stop = new JButton("Stop");
	  	panel.add(BorderLayout.NORTH,stop);
	  	stop.setBounds(150,0,100,100);
	  	
	  	//Panel dem Frame hinzufügen
	  	Simulation.frame.add(panel);
		taktgeber();
	}
	
	
	private static void taktgeber() {
		
		//Für jede Minute ein Strassendurchlauf
				while(schleife<1250){	
					simu.auto();
					simu.ausgabe();
					schleife++;
					a.repaint();
				}
				simu.endausgabe();
		
	}


	public static void ampel(){
		final int fahrendeAutos = 8;
		
		if(Ampelfarbe == 0){        //Rot  
			Ampelfarbe = 1; 
			Ampelanzeige = "Rot";
		}else{                      //Grün
			Ampelfarbe = 0;
			Ampelanzeige = "Grün";
			stAutos = stAutos - fahrendeAutos;  //8 Autos fahren weg
			
			if(stAutos<=0){          //Wenn stAutos < 0 stAutos auf 0 setzen 
				stAutos = 0;
				rot = (int)(Math.random()*256);
				grün = (int)(Math.random()*256);
				blau = (int)(Math.random()*256);
				auto = new Color(rot, grün, blau);
			}
			a.repaint();
		}
		
	}

	public void auto(){
		//Zufallszahl ermitteln
		zufall = (int)(Math.random() * 6+1);
		
		//Zeit ermitteln
		long zeit = (long)(10/zufall)*1000;
		
		//Anzahl Autos erhöhen
		for(int i = 1; i<=zufall; i++){
		
			try {
				Thread.sleep(zeit);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			//aktualisieren
			a.repaint();
			
			stAutos++;
			Autos++;
			
			try {
				Thread.sleep(zeit);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			//aktualisieren
			a.repaint();
		}
		//Ampel an/aus schalten
		
		ampel();
		
	}
	public void ausgabe(){
		//Ausgabe nach jeder Minute
		System.out.println("Ampel: " + Ampelanzeige);
		System.out.println("Kommende Autos: " + zufall);
		System.out.println("Anzahl derAutos nach " + schleife + " Minuten: " + stAutos);
	}
	
	public void endausgabe(){
		//Durchschnitt an kommenden Autos die Minute
		float durchschnitt = (float)( Autos / 1520); 
		
		//Endausgabe
		System.out.println("------------------------------------------------------------------------------------------");
		System.out.println("------------------------------------------------------------------------------------------");
		System.out.println("Gesamtzahl der Autos am heutigen Tag: " + Autos);
		System.out.println("Durchschnittliche Anzahl ankommender Autos die Minute: " + durchschnitt);
		System.out.println();
	}

}

Ich habe den beiden Buttons erstmal keine Events übergeben, das ich erstmal dafür sorgen wollte, dass sie angezeigt werden.
Danke an alle, die mir helfen wollen.:toll:
 

qexxler

Aktives Mitglied
Habe den Code nicht ausprobiert, aber versuche mal
Java:
frame.getContentPane().add(panel, BorderLayout.PAGE_START)
. Wenn es nicht funktionieren sollte, teste ich den Code nachher einmal. :)
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
JPanel benutzt standartmäßig Flowlayout, du weist deinem Panel aber nirgends nen Layout Manager (BorderLayout) zu bevor du versuchst deine Buttons auf einem zu platzieren , wenn ich mich jetzt nicht verguckt habe versuch mal:

Java:
JPanel panel = new JPanel(new BorderLayout());

sonst dürfte das so auch nicht funktionieren wenn ich mich nicht irre
Java:
  panel.add(BorderLayout.NORTH,stop); // da ja noch KEIN BorderLayout deklariert wurde
 
Zuletzt bearbeitet:

lord239123

Bekanntes Mitglied
Ok, danke euch beiden.
Jetzt funktionierts.

Der geänderte Code in Zeile 56 der Simulation-Klasse:
Java:
Simulation.frame.add(panel, BorderLayout.PAGE_START);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Buttons werden nicht angezeigt, warum? Java Basics - Anfänger-Themen 31
C Es werden keine weiteren Buttons erzeugt Java Basics - Anfänger-Themen 11
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
D Custom Buttons oder Custom Combobox Java Basics - Anfänger-Themen 30
A Aktualisierung eines Buttons Java Basics - Anfänger-Themen 18
S Runde Buttons erstellen Java Basics - Anfänger-Themen 10
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
T Buttons... Java Basics - Anfänger-Themen 1
U Javafx Array aus Buttons Java Basics - Anfänger-Themen 2
L Buttons außerhalb der sichtbaren Activity Java Basics - Anfänger-Themen 8
E Hilfe bei Buttons (GUI) Java Basics - Anfänger-Themen 3
D Mit Buttonklick Farbe der anderen Buttons verändern? Java Basics - Anfänger-Themen 2
L Buttons ansprechen Java Basics - Anfänger-Themen 1
F Mehrfaches Clicken eines Buttons Java Basics - Anfänger-Themen 1
H Buttons zeigen keine Reaktion Java Basics - Anfänger-Themen 6
E Wenn i (for-Loop) bestimmter Wert, dann neue Zeile eines Buttons Java Basics - Anfänger-Themen 7
H Java Buttons ausblenden bei inaktivität Java Basics - Anfänger-Themen 1
A Nach Druck eines Buttons reagieren andere Button nicht Java Basics - Anfänger-Themen 3
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
D Variable Anzahl an Buttons per Schleife Java Basics - Anfänger-Themen 7
U Best Practice Buttons sollen ÜBER Labeln liegen, also quasi im Vordergrund. WIE? Java Basics - Anfänger-Themen 4
TheSorm Anzeige fehler eines Buttons Java Basics - Anfänger-Themen 3
M Icons auf Buttons Java Basics - Anfänger-Themen 9
S Variablen Variable bei drücken eines Buttons ändern Java Basics - Anfänger-Themen 1
M Buttons funktionieren nicht Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
M Größe eines Buttons festlegen Java Basics - Anfänger-Themen 4
W Buttons sollen bei Mausklick einen String schreiben Java Basics - Anfänger-Themen 11
J Aktivierung eines Buttons nach Eingabe in Textfeldern (DocumentListener) Java Basics - Anfänger-Themen 4
O Position des Buttons wird nicht geändert.. Java Basics - Anfänger-Themen 6
K Erste Schritte GUI - Hintergrundbild und darauf Buttons Java Basics - Anfänger-Themen 2
J BlueJ canvas Buttons adden? Java Basics - Anfänger-Themen 2
U Methoden Methode zur Erstellung von Buttons Java Basics - Anfänger-Themen 11
H Icons in Buttons resizable? Java Basics - Anfänger-Themen 3
C Buttons über Textfeld beschriften Java Basics - Anfänger-Themen 10
L OOP Buttons mit Pfeilen miteinander verbinden Java Basics - Anfänger-Themen 5
A Dropdown Liste - mit je zwei Verlinkungen und zwei ausführende Buttons Java Basics - Anfänger-Themen 3
I Dynamisch erzeugten Buttons Methoden zuweisen Java Basics - Anfänger-Themen 6
P Listener für mehrere Buttons Java Basics - Anfänger-Themen 3
S Hilfe bei Buttons Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
B Die Hintergrundfarbe eines deaktivierten buttons ändern? Java Basics - Anfänger-Themen 4
SheldoN Töne abspielen auf verschiedenen Buttons Java Basics - Anfänger-Themen 17
J durch drücken eines buttons text in einer textdatei speichern Java Basics - Anfänger-Themen 2
G MouseListener für mehrere Buttons Java Basics - Anfänger-Themen 11
Fab1 Buttons auf ein Hintergrundbild(JFrame) setzen Java Basics - Anfänger-Themen 24
H Methode aufrufen beim Drücken eines Buttons im Boxlayout Java Basics - Anfänger-Themen 6
M Tabelle mit Buttons Java Basics - Anfänger-Themen 24
M Variablen via actionPerformed mit Buttons ändern Java Basics - Anfänger-Themen 7
K Durch ändern eines Buttons String füllen Java Basics - Anfänger-Themen 14
J Buttons Java Basics - Anfänger-Themen 19
G Buttons in ein Array umformen Java Basics - Anfänger-Themen 11
S Buttons übereinander legen - Reihenfolge Java Basics - Anfänger-Themen 2
M Buttons erscheinen erst bei Mouse-Over Java Basics - Anfänger-Themen 8
B Buttons Java Basics - Anfänger-Themen 9
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
1 Menü mit Buttons erstellen Java Basics - Anfänger-Themen 10
M Durchsichtige Buttons Java Basics - Anfänger-Themen 12
P OnClickListener für mehrere Buttons Java Basics - Anfänger-Themen 5
U Buttons einfügen (Leiste verschwunden!?) Java Basics - Anfänger-Themen 2
M Gui - Probleme mit Buttons Java Basics - Anfänger-Themen 4
C Swing, Buttons Wert zuweisen Java Basics - Anfänger-Themen 3
E Android: OnClickListener erkennt Buttons nicht Java Basics - Anfänger-Themen 7
E Buttons in Android generieren? Java Basics - Anfänger-Themen 4
D Link over Buttons Java Basics - Anfänger-Themen 4
B Identifikation eines einzelnen Buttons aus mehreren Buttons per Schleife erzeugten Java Basics - Anfänger-Themen 4
Nicer Radio Buttons Gruppe Java Basics - Anfänger-Themen 2
G getControlPanelComponent JMF Buttons verstecken? Java Basics - Anfänger-Themen 7
K Buttons Funktionieren Nicht!!! Java Basics - Anfänger-Themen 8
manunana89 2 ActionListener auf 2 Buttons??? Java Basics - Anfänger-Themen 6
Mike90 verschieben von Buttons, ... Java Basics - Anfänger-Themen 18
F Buttons und Aktionen Java Basics - Anfänger-Themen 20
M dynamisches Clipboard mit Buttons Java Basics - Anfänger-Themen 5
H Buttons um sprache zu ändern. Java Basics - Anfänger-Themen 6
B Calculator - Buttons zusammenfassen Java Basics - Anfänger-Themen 8
0 Buttons mit Absatz Java Basics - Anfänger-Themen 6
B Buttons erstellen! Wie? Java Basics - Anfänger-Themen 2
D Buttons-die Wahrheit über sie Java Basics - Anfänger-Themen 11
G Buttons mit MouseOver Java Basics - Anfänger-Themen 5
M "Selbst erstellte" Buttons nicht sichtbar. Java Basics - Anfänger-Themen 20
Mörmel Variable Anzahl von Buttons erzeugen Java Basics - Anfänger-Themen 6
K Fenster mit Buttons hin und her schieben ? Java Basics - Anfänger-Themen 23
A in jTextField mit Hilfe von Buttons schreiben Java Basics - Anfänger-Themen 2
J Buttons Java Basics - Anfänger-Themen 3
M Buttons auf allen Masken Java Basics - Anfänger-Themen 4
G Alle Buttons in einer For Schleife ändern Java Basics - Anfänger-Themen 5
G Nicht benannte Buttons - Wenn gedrückt > Action Java Basics - Anfänger-Themen 24
T Buttons Resetten Java Basics - Anfänger-Themen 2
G Grafische Oberfläche mit Buttons und Actionlistener? Java Basics - Anfänger-Themen 27
D Buttons gehen trotz enebled(false) Java Basics - Anfänger-Themen 8
P Buttons Java Basics - Anfänger-Themen 6
G Panels und Buttons Java Basics - Anfänger-Themen 5
P Eigenschaften eines Buttons ändern Java Basics - Anfänger-Themen 6
M Buttons Java Basics - Anfänger-Themen 7
N Größe von Buttons Java Basics - Anfänger-Themen 3
D MouseLister und Identifikation des Event - Buttons Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben