AWT Frage zu AWT

  • Themenstarter Themenstarter Thomas1984
  • Beginndatum Beginndatum
T

Thomas1984

Gast
Hallo Liebe-Community,

ich wollte zum Spaß ein Programm schreiben. Aber beim Compilieren zeigt er mir immer die Fehlermeldung "class, interface, or enum expected". Dann ändern ich das in der Zeile bzw. in dem Abschnitt und beim nächsten Compilieren zeigt er es mir woanders an.
Ich bin kein JAVA-Profi und gerade am ein bisschen lernen.
Könnt ihr mir vielleicht sagen, wo die Fehlerquelle liegt und wie ich sie am einfachsten behebe?

Gruß
Thomas

Java:
import java.awt. *;
import java.awt.event. *;

class Sotis2
{
	//Elemente der GUI
	private frame f;
	private Label lAus; //ist ein kleines l, keine 1!
	private button b;
	
	public Sotis2
	{
		lAus = new Label();
		f = new Frame();
		
		
		b = new Button "Random Hero";
	
	}
	
	//Festlegen der Eigenschaften
	public void frameFestlegen()
		{
		// Fenstereigenschaften festlegen l
		f.setTitle("DotA: Sotis");
		f.setSize(280, 150);
		f.addWindowListener(new WindowAdapter()
			{
			public void windowClosing(WindowEvent e)
			{System.exit(0);}
		}
		);
		
	/*Elemente anordnen mit GridLayout*/
	
	f.setLayout(new GridLayout(1,2));
	f.add(b); f.add (lAus);
	
	//Funktion Berechnen
	b.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				
			//Operator
			int ergebnis;
			double zwischenergebnis;
			zwischenergebnis = (Math.random() * 7) + 1;
			String held = "";
			ergebnis = (int)zwischenergebnis;

				if (ergebnis == 1)

					{
						held = "Random";
					}
				else if (ergebnis == 2)

					{
						held = "Toximancer.Vespus";
					}
				else if (ergebnis == 3)

					{
						held = "Tiberius.Rancor";
					}
				else if (ergebnis == 4)

					{
						held = "Prelate.Zeratul";
					}
				else if (ergebnis == 5)

					{
						held = "Garamond.Singsprocket";
					}
				else if (ergebnis == 6)

					{
						held = "Shadow.Geminus";
					}
			else if (ergebnis == 7)

				{
					held = "Chuck.TBone";
					
				}

	
				
				//Umwandlung Double - String
				String ausgabe = String.valueOf(ergebnis);
				
				//Ergebniswert in Label
				
				lAus.setText(ausgabe);
			}
		}	);
		
		//Sichtbarkeit
		f.setVisible(true);
			
		public static void main(String[] args)
	
		{
			Sotis2 fenster = new Sotis2();
			fenster.frameFestlegen();
		}
}
 
Zeile 101 ist normaler Code, der nur innerhalb von Methoden bzw. Konstruktoren stehen darf, nicht direkt in einer Klasse,

in einer Klasse dürfen nur Variablen deklartiert, Methoden + Konstruktoren geschrieben werden sowie weitere Unterklassen,
was der Compiler hier hilflos vermutet

edit:
ok, gibt noch weitere Probleme, ein Konstruktor braucht (),
frame klein geschrieben gibts nicht,
weitere Befehle stehen direkt in der Klasse statt in Methoden

am besten mit einer leeren Klasse beginnen und Zeile für Zeile bzw. Methode für Methode übernehmen,
ein riesiges Programm voller unterschiedlicher Fehler ist in der Tat schwieriger zu analysieren,

optionaler Kram wie die sieben if-else bzw. ActionListener an sich erstmal komplett außen vor lassen,
sondern nur ein leeres Fenster erfolgreich anzeigen, danach einige Komponenten einfügen und das testen, usw.



was sind eigentlich die genauen Fehlermeldungen, gibts da keine Zeilenangaben?
 
Zuletzt bearbeitet von einem Moderator:
Ich hab jetzt den ganzen Code auf 6 Errors runtergebracht, mit nichts ausgeblendet.

Danke, für die Hilfe. Ich versuch jetzt erstmal allein weiterzumachen 😉
 
Habs hinbekommen.

Danke für deine Hilfe SlaterB.

Wenn es jemanden interessiert hier der funktionierende Code;

Java:
import java.awt. *;
import java.awt.event. *;

class Sotis2
{
	//Elemente der GUI
	private Frame f;
	private Label lAus; //ist ein kleiner L, keine 1!
	private Button b;
	
	public Sotis2()
	{
		lAus = new Label();
		f = new Frame();
		
		b = new Button ("Random Hero");
	
	}
	
	//Festlegen der Eigenschaften
	public void frameFestlegen()
	{
		// Fenstereigenschaften festlegen l
		f.setTitle("DotA: Sotis");
		f.setSize(280, 150);
		f.addWindowListener(new WindowAdapter()
			{
			public void windowClosing(WindowEvent e)
			{System.exit(0);}
			}
							);
		
	/*Elemente anordnen mit GridLayout*/
	
	f.setLayout(new GridLayout(1,2));
	f.add(b); f.add (lAus);
	
	//Funktion Berechnen
	b.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				
			//Operator
			int ergebnis;
			double zwischenergebnis;
			zwischenergebnis = (Math.random() * 7) + 1;
			String held = "";
			ergebnis = (int)zwischenergebnis;

				if (ergebnis == 1)

					{
						held = "Random";
					}
				else if (ergebnis == 2)

					{
						held = "Toximancer.Vespus";
					}
				else if (ergebnis == 3)

					{
						held = "Tiberius.Rancor";
					}
				else if (ergebnis == 4)

					{
						held = "Prelate.Zeratul";
					}
				else if (ergebnis == 5)

					{
						held = "Garamond.Singsprocket";
					}
				else if (ergebnis == 6)

					{
						held = "Shadow.Geminus";
					}
			else if (ergebnis == 7)

				{
					held = "Chuck.TBone";
					
				}

	
				
				//Umwandlung Double - String
				String ausgabe = held;
				
				//Ergebniswert in Label
				
				lAus.setText(ausgabe);
			}
		}	);
		
		//Sichtbarkeit
		f.setVisible(true);
	}
			
		public static void main(String[] args)
	
		{
			
			Sotis2 fenster = new Sotis2();
			fenster.frameFestlegen();
		}
}
 

Zurück
Oben