Aus einer Klasse eine andere laden

SiDeu

Aktives Mitglied
Hallo an alle!
Ich habe mir ein kleines Dartspiel programmiert danach habe ich einen Abspann für den Gewinner programmiert.
Nun will ich wenn der Gewinner festliegt der Abspann aufgerufen wird es zeigt aber immer Fehler an ;(
Bei Spiel zeigt es den Fehler bei Zeile 174 und bei Gewonnen bei 58 an!
Hier die Spiel Klasse

Java:
package dart;

import java.util.ArrayList;
import javax.swing.JOptionPane;

public class Spiel {

	public static void main(String[] args) {
		int Mittspieler;
		int Punkte = 301;
		int anzahlWuerfe;
		String Gewinner = "";
		int besterWurf;
		int schlechtesterWurf;

		// Liste mit Objekten
		ArrayList<Person> Spieler = new ArrayList<Person>();

		// Endlosschleife bis eine Zahl eingegeben wurde
		while (true) {
			try {
				String Eingabe = JOptionPane
						.showInputDialog("Wieviele Mittspieler");
				if (Eingabe == null) { System.exit(0);}
				Mittspieler = Integer.parseInt(Eingabe);
				break;
			} catch (Exception e) {
				System.out.println("Das war keine Zahl!");
				JOptionPane.showMessageDialog(null, "Das war keine Zahl");
				
			}
		}

		// hier folgt eine ausgabe
		System.out.println("Danke für die Eingabe");
		JOptionPane.showMessageDialog(null, "Danke für die Eingabe");

		// hier werden die Personen angelegt mit Anzahl der Eingabe Mitspieler
		for (int i = 1; i <= Mittspieler; i++) {
			String Vorname = JOptionPane.showInputDialog("Vorname ");
			String Nachname = JOptionPane.showInputDialog("Nachname ");
			Person person = new Person(Vorname, Nachname, Punkte);

			Spieler.add(person);
		}

		label: do {

			for (Person ob : Spieler) {

				// Aktueler Punktestand zu beginn der Runde
				int Startpunkte = ob.getPunkte();

				label2: for (int w = 1; w <= 3; w++) {

					boolean richtigeZahl = false;
					int AktuellePunkte = 0;
					String Geworfen = null;
					
					
					do {
						while (true) {
							try {
								Geworfen = JOptionPane.showInputDialog("Wurf"
										+ w + " " + ob.getVorname() + " "
										+ ob.getNachname());

								AktuellePunkte = Integer.parseInt(Geworfen);
								break;
							} catch (Exception e) {
								System.out.println("Das war keine Zahl!");
								JOptionPane.showMessageDialog(null,
										"Das war keine Zahl");
							}
						}
						if (checkWurf(AktuellePunkte)) {
							richtigeZahl = true;
						}

						// Prüft ob Wurf gültig war wird gantz unten als ein
						// Objekt übergeben mit
						// den Werten true ore false ob checkWurf die Aktuellen
						// Punkte bekommt
						// setzt dann den Wert richtige Zahl auf true

						else {
							System.out.println("Kann nicht sein");
							JOptionPane.showMessageDialog(null, "Kann"
									+ " nicht" + " sein");
						}
					} while (richtigeZahl == false);

					// läuft die else so lange durch bis sie oben beim if true
					// ergibt

					if (ob.getPunkte() - AktuellePunkte == 0) {

						// Gewinnername wird declariert
						Gewinner = ob.getVorname() + " " + ob.getNachname();
						anzahlWuerfe = ob.getAnzahlWuerfe();
						besterWurf = ob.getHoechsterWurf();
						schlechtesterWurf = ob.getNidrigsterWurf();
						break label;
					}

					
					else if (ob.getPunkte() - AktuellePunkte < 0) {

						// Punkte wieder aufaddieren
						ob.setPunkte(Startpunkte);

						System.out.println("Sie haben überworfen Sie haben"
								+ "jetzt" + " wieder" + " " + ob.getPunkte()
								+ " " + "Punkte" + " " + ob.getVorname() + " " + ob.getNachname());
						JOptionPane.showMessageDialog(null,
								"Sie haben überworfen Sie haben" + "jetzt "
										+ "wieder" + " " + ob.getPunkte() + " "
										+ "Punkte" + " " + ob.getVorname() + " " + ob.getNachname());
						break label2;

					}

					ob.setGeworfen(Integer.parseInt(Geworfen));
				}
					
					
					
				System.out.println(ob.getVorname() + " " + ob.getNachname()
						+ " " + "hat jetzt noch" + " " + ob.getPunkte() + " "
						+ "Punkt(e)");
				JOptionPane.showMessageDialog(null,
						ob.getVorname() + " " + ob.getNachname() + " "
								+ "hat jetzt noch" + " " + ob.getPunkte() + " "
								+ "Punkte");
				
				
				int Wurfgesamt;
				Wurfgesamt = Startpunkte - ob.getPunkte();
				if (Wurfgesamt > ob.getHoechsterWurf()) {
					ob.setHoechsterWurf(Wurfgesamt);
				}
				
					int Wurfgesamt2;
					Wurfgesamt2 = Startpunkte - ob.getPunkte();
					if (Wurfgesamt2 < ob.getNidrigsterWurf()) {
						ob.setNidrigsterWurf(Wurfgesamt2);
					}
	

			}

		} while (true);
		
		anzahlWuerfe = anzahlWuerfe + 1;
		System.out.println("Spiel beendet. " + " " + Gewinner + " "
				+ "hat gewonnen" + " " + " " + "Mit Wurf" + " " + anzahlWuerfe
				+ " " + "Der Höchste Wurf in diesem Spiel war:  " + besterWurf
				+ " " + "Der nidrigste Wurf war" + " " + schlechtesterWurf);

		JOptionPane.showMessageDialog(null, "Spiel beendet." + Gewinner + " "
				+ "hat gewonnen" + " " + "Mit Wurf" + " " + anzahlWuerfe);

		







                           //Methode von Gewonnen aufrufen hier zeigt es den Fehler an
		
		Gewonnen SpielGewonnen = new Gewonnen();
		SpielGewonnen.drawImage();

		
		




	
	}


	public static boolean checkWurf(int AktuellePunkte) {
		if (AktuellePunkte > 60) {
			return false;
		}
		int[] zahlen = { 23, 25, 29, 31, 37, 41, 43, 47, 49, 53, 55, 59 };
		for (int i = 0; i < zahlen.length; i++) {
			if (zahlen[i] == AktuellePunkte) {
				return false;
			}

		}
		return true;
	}
}

Hier die Gewonnen Klasse

Java:
package dart;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Gewonnen extends JFrame implements ActionListener {
	private JButton Knopf;

	
	
	public Gewonnen() {
		super("Gewonnen");
		JPanel Platte = new JPanel();
		Platte.setLayout(new FlowLayout());
		Platte.setBackground(Color.black); // <--Schwartzer Hintergrund
		Knopf = new JButton("Drück mich!");
		Knopf.addActionListener(this);
		Box Oben = Box.createHorizontalBox();
		Oben.setPreferredSize(new Dimension(400, 100));
		Platte.add(Oben);
		Platte.add(Knopf);
		setContentPane(Platte);
	}

	public void actionPerformed(ActionEvent Ereignis) {

		drawImage();
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		Gewonnen Rahmen = new Gewonnen();
		Rahmen.setSize(400, 300);
		Rahmen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Rahmen.setVisible(true);
	}

	// Methode
	public void drawImage() {
		Graphics Stift = getGraphics();
		Dimension Groesse = getSize();
		int Breite = Groesse.width;
		int Hoehe = Groesse.height;
		for (int i = 0; i < 200; i++) {

			final int FMax = 9;
			Color[] Farbe = { Color.black, Color.gray, Color.white,
					Color.cyan,
					Color.magenta, Color.yellow, Color.red, Color.green,
					Color.blue };








                                        // hier zeigt es den anderen Fehler an

			Stift.setColor(Farbe[(int) (Math.random() * FMax)]);
			Stift.setFont(new Font("Arial", Font.PLAIN,
					(int) (Math.random() * 40)));
			Stift.drawString("Gewonnen", (int) (Math.random() * Breite),
					(int) (Math.random() * Hoehe));
			try {
				Thread.sleep(10);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
	}
}
 

SiDeu

Aktives Mitglied
Die Zeilen stimmen nicht genau überein weil ich da für mich selber Erklärungen reingeschrieben habe aber sie nicht gepostet habe!

Bei spiel ist er in 174 bei gewonnen in 58

11-03-2014 14-40-17.jpg
 

HarleyDavidson

Bekanntes Mitglied
Ich hab es mal debuggt ...

Klarer Fall:

Wenn das Fenster noch nicht sichtbar ist, gibt die Methode "getGraphics()" null zurück:

Creates a graphics context for this component. This method will return null if this component is currently not displayable.

Heißt für dich:

Bevor du "drawImage()" aufrufst, musst du "Gewonnen.setVisible(true)" aufrufen. Dann klappt es bei mir ohne Probleme!
 

SiDeu

Aktives Mitglied
Hallo HarleyDavidson!
Ich habe da nun ein Problem !...
Und zwar ist es jetzt so, daß es den Hintergrund dursichtig macht und nicht schwarz die größe kann ich festlegen aber die Farbe nicht??!! ???:L ???:L ???:L
Wenn ich auf minimieren klicke dann wird es erst schwarz!!?? ???:L
 

Anhänge

  • Spiel.jpg
    Spiel.jpg
    40,7 KB · Aufrufe: 17
  • Gewonnen.jpg
    Gewonnen.jpg
    156,5 KB · Aufrufe: 16
Zuletzt bearbeitet:

HarleyDavidson

Bekanntes Mitglied
Durchsichtig?? ???:L Cool. Hast du irggendwo die Methode "setWindowOpacity()" eingebaut? Mit der kann man das Fenster transparent machen.

Ansonsten poste mal den aktuellen Code.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
F OOP Instanz einer Klasse an eine andere weitergeben Java Basics - Anfänger-Themen 16
DaCrazyJavaExpert Klassen Von einer Klasse auf eine erbende Klasse zugreifen Java Basics - Anfänger-Themen 13
B Wie kann ich eine Methode einer selbst erstellten Klasse statisch importieren? Java Basics - Anfänger-Themen 5
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
S Methoden eine Instanz einer eigenen Klasse als parameter übergeben Java Basics - Anfänger-Themen 9
S Interface Implementieren von Methoden aus einer Klasse in eine GUI Java Basics - Anfänger-Themen 6
K Zugriff einer Klasse auf eine andere Andere -> bad operand for binary operator Java Basics - Anfänger-Themen 5
W Klassen Kann eine Variable nicht aus einer Klasse bekommen Java Basics - Anfänger-Themen 9
L Methoden Eine Methode aus einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 4
N OOP Zugriff auf eine Objekt innerhalb einer Klasse aus statischen Methoden Java Basics - Anfänger-Themen 9
S Von einer Klasse auf eine Liste einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 8
E Variable aus einer Methode heraus in eine andere Klasse übergeben Java Basics - Anfänger-Themen 13
J OOP Zugriff einer Klasse auf eine Andere Java Basics - Anfänger-Themen 8
M Zwei Threads greifen auf eine Methode einer Klasse zu. Komplikationen? Java Basics - Anfänger-Themen 18
D Wie neue Instanz einer Klasse erstellen, von der ich nur eine andere Instanz kenne? Java Basics - Anfänger-Themen 13
L Aus einer Methode eine eigene Klasse machen - modular coden Java Basics - Anfänger-Themen 14
A Konstruktorübergabe von einer klasse an eine andere Java Basics - Anfänger-Themen 2
philipp Wie kann ich eine Funktion einer Klasse benutzen ? Java Basics - Anfänger-Themen 2
M Methode einer Klasse in eine andere Übergeben Java Basics - Anfänger-Themen 4
S Variablenwert von einer Klasse in eine andere Klasse geben Java Basics - Anfänger-Themen 2
A Wert einer Variable an eine Methode in einer anderen Klasse. Java Basics - Anfänger-Themen 4
N Daten von einer Klasse an eine andere übergeben? Java Basics - Anfänger-Themen 4
U Integration einer Klasse in eine JSP Java Basics - Anfänger-Themen 2
H JLabel aus einer Klasse an eine andere Klasse übergeben Java Basics - Anfänger-Themen 4
J Von einer Klasse auf eine Methode einer anderen Klasse zugre Java Basics - Anfänger-Themen 6
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
B Objektverwaltung mit ArrayList in einer seperaten Klasse Java Basics - Anfänger-Themen 24
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
V_Fynn03 Kontostand anzeigen lassen von einer anderen Klasse Java Basics - Anfänger-Themen 3
X Auf Attribut einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 2
S Instanzvariablen vom Typ einer Klasse definieren Java Basics - Anfänger-Themen 12
B Attribut vom Typ einer Klasse? Java Basics - Anfänger-Themen 3
M Objekt einer Klasse speichert die Veränderung nicht Java Basics - Anfänger-Themen 1
K Boolean in einer erstellten Klasse verwenden Java Basics - Anfänger-Themen 14
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
E Eigenschaften Werte, in einer anderen Klasse, zuweisen Java Basics - Anfänger-Themen 40
O Anonyme Klasse einer Liste erstellen Java Basics - Anfänger-Themen 7
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
K Klasse mit einer Array-Eigenschaft Java Basics - Anfänger-Themen 4
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
I Instanz einer anderen Klasse zurückgeben Java Basics - Anfänger-Themen 34
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
L Variable aus einer Klasse in einer anderen Klasse nutzen Java Basics - Anfänger-Themen 6
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
K Klassen Array einer anderen Klasse ... Java Basics - Anfänger-Themen 21
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
N Attribut einer anderen Klasse übertragen/verwenden Java Basics - Anfänger-Themen 5
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
T Klassen Klasse in einer anderen Klasse verwenden. Java Basics - Anfänger-Themen 3
J Die Y Koordinate von einer anderen Klasse auch verändern Java Basics - Anfänger-Themen 1
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
karlmasutra Klassen Rückgabe eines Wertes aus einer anderen Klasse Java Basics - Anfänger-Themen 3
S Auf Array einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 13
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
F Aus einer anderen Klasse auf ein JTextField zugreifen Java Basics - Anfänger-Themen 17
A OOP Methodenaufruf in einer anderen Klasse Java Basics - Anfänger-Themen 2
M Erste Schritte Arraylist in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 11
D ArrayList in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben