# Mein Programm wird sofort terminated



## CPlusPlusHater (3. Dez 2013)

Ich hab keine Ahnung, warum mein Programm die ganze Zeit terminated wird. Kan mir wer helfen?


```
public static void frame () {
		final JFrame fenster1 = new JFrame("Lost in Rooms");
		fenster1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    fenster1.setSize(1280, 720);
	    fenster1.getContentPane().setLayout(null);
	    fenster1.setVisible(true);
	    fenster1.setResizable(false);
	    fenster1.setPreferredSize(new java.awt.Dimension(1280, 720));
	    {
	    	jButton1 = new JButton();
	    	fenster1.getContentPane().add(jButton1);
	    	jButton1.setLayout(null);
	    	jButton1.setText("Spiel starten");
	    	jButton1.setBounds(513, 206, 243, 100);
	    	jButton1.setIcon(new ImageIcon(frame.class.getResource("Button.png")));
	    {
	    	jButton2 = new JButton();
	    	jButton2.setText("Spiel beenden");
	    	fenster1.getContentPane().add(jButton2);
	    	jButton2.setBounds(513, 362, 243, 93);
	    	jButton2.setIcon(new ImageIcon(frame.class.getResource("Button 2.png")));
	    	jButton2.addActionListener(new ActionListener() {
	    		public void actionPerformed(ActionEvent evt) {
	    			jButton2ActionPerformed(evt);
	    		}
	    	});
	    }
	    {
	    	gui gui_IL = new gui();
	    	fenster1.getContentPane().add(gui_IL, new AnchorConstraint(3, 1000, 1005, 0, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
	    	gui_IL.setLayout(null);
	    	gui_IL.setBounds(0, -26, 1280, 720);
	    }
	    fenster1.setSize(1280, 720);
            gui gui = new gui();
		gui.setPreferredSize(fenster1.getSize());
		fenster1.getContentPane().repaint();
    }
	}
	public static void main(String[] args) {
		new frame();
		}

	
	

	
	public static void fenster(){
		JFrame frame = new JFrame("Lost in Rooms");
		frame.setSize(1280, 720);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    frame.getContentPane().setLayout(null);
	    frame.setResizable(false);
		frame.setVisible(true);
		{
			jTextField1 = new JTextField();
			frame.getContentPane().add(jTextField1, new AnchorConstraint(933, 748, 972, 199, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
			jTextField1.setPreferredSize(new java.awt.Dimension(748, 29));
			jTextField1.setBounds(251, 636, 694, 26);
			jTextField1.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					jTextField1ActionPerformed(evt);
				}
			});
		}
		{
			jTextArea1 = new JTextArea();
			frame.getContentPane().add(jTextArea1);
			jTextArea1.setBounds(251, 34, 694, 26);
		}
	}
	private static void jButton2ActionPerformed(ActionEvent evt) {
		System.exit(0);
		}
	private static void jTextField1ActionPerformed(ActionEvent evt) {
		String eingabe = jTextField1.getText();
		
		if (eingabe.equalsIgnoreCase("Öffne Schrank")) {
			ÖffneSchrankWurdeEingegeben = true;
			
		} else {
			
			if (eingabe.equals("Öffne Kommode")) {
				ÖffneKommodeWurdeEingegeben = true;
			} else {
				ÖffneKommodeWurdeEingegeben = false;
				ÖffneSchrankWurdeEingegeben = false;
			}
		}
		if (ÖffneKommodeWurdeEingegeben == true && KommodeIstOffen == false) {
			KommodeIstOffen = true;
			jTextArea1.setText("Die Kommode wurde geöffnet. Da liegt ja ein Schlüssel!");
		}
		if (ÖffneSchrankWurdeEingegeben == true && SchrankIstOffen == true) {
			jTextArea1.setText("Der Schrank wurde bereits geöffnet!");
	}
	if (ÖffneSchrankWurdeEingegeben == true && SchrankIstOffen == false) {
		SchrankIstOffen = true;
		jTextArea1.setText("Der Schrank wurde geöffnet. Da hängt ja eine Taschenlampe!");
	}
			
		}
	

	}
```


----------



## eMmiE (3. Dez 2013)

a) Das ist NICHT der Code, den du ausführst, oder?
Wird nämlich nicht funktionieren, schon allein wegen der geschweiften Klammern, die scheinbar wahllos irgendwo hingesetzt wurden
b) Kann es nicht sein, dass dein Programm einfach durchläuft und dann beendet wird?


----------



## CPlusPlusHater (3. Dez 2013)

Also 
A) das ist der Code und Eclipse zeigt keine Fehler an.
B)Es startet einfach nicht


----------



## eMmiE (4. Dez 2013)

Wie kannst du das Programm starten?
Ich meine, du legst ein neues Objekt Typ "void" an (-> public static void main() {new frame()})
Du hast lso nicht mal ein Klassenobjekt, das er instanzieren kann...

Schreib mal eine Klasse drumrum, schreib dann: new Klasse(); und ruf dann deren Methode frame() auf


----------



## CPlusPlusHater (5. Dez 2013)

Sry, dass ich ein kompletter Noob bin, aber ich habe keine Ahnung, wie ich das mache, was du sagst. Programmiere erst seit 2-3 Wochen.


----------



## Tiding (7. Dez 2013)

Was für eine Klasse hast du darum? Weil wenn ich diesen Code kopieren würde, würde es sicher nicht funktionieren :noe: .

Vorallem musst du z.B. 
	
	
	
	





```
jButton1 = new JButton();
```
 ja auch irgendwo instanziiert haben ._. :
sprich JButton jButton1;

Hast du denn eine Klasse, die "gui" heißt? 
	
	
	
	





```
gui gui_IL = new gui();
```
 weil diese Klasse gui gibt es bei mir nicht.

Und noch einige andere Unstimmigkeiten, bei denen Eclipse eigentlich Fehler anzeigt :O !

Und könntest du evtl. mal erklären, was du da genau machen willst? ???:L

lg


----------



## eMmiE (8. Dez 2013)

Kurz gesagt:
Wenn wir dir wirklich helfen sollen, dann solltest du den ganzen Code posten, der wichtig ist:
-Initialisierungen
-Methodenaufrufe, die damit zusammenhängen
-Klassen, die wir zum Verstehen benötigen

Am Besten wäre es, wenn du ein kurzes compilierbares Beispiel reinstellen würdest und uns dort dein Problem nochmal verdeutlichst

Gruß eMmiE


----------



## CPlusPlusHater (8. Dez 2013)

Also, ich gebe euch einfach mal den kompletten Code von beiden Klassen:

frame: 
	
	
	
	





```
package video;
import com.cloudgarden.layout.AnchorConstraint;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit [url=http://www.cloudgarden.com]Cloud Garden (Java Resources)[/url] for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class frame extends JFrame {
	private static JTextField jTextField1;
	private static JButton jButton1;
	static private JTextArea jTextArea1;
	private static JButton jButton2;
	private static int level = 0;
	private static boolean FensterWirdGeschlossen = false;
	private static boolean ÖffneKommodeWurdeEingegeben = false;
	private static boolean ÖffneSchrankWurdeEingegeben = false;
	private static boolean TaschenlampeIstErreichbar = false;
	private static boolean KommodeIstOffen = false;
	private static boolean SchrankIstOffen = false;
	private static boolean SchlüsselIstErreichbar = false;

	public static void main (String[] args) {
		final JFrame fenster1 = new JFrame("Lost in Rooms");
		fenster1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fenster1.setLayout(null);
	    fenster1.setSize(1280, 720);
	    fenster1.setVisible(true);
	    fenster1.setResizable(false);
	    fenster1.setPreferredSize(new java.awt.Dimension(1280, 720));
	    {
	    	jButton1 = new JButton();
	    	fenster1.getContentPane().add(jButton1);
	    	jButton1.setLayout(null);
	    	jButton1.setText("Spiel starten");
	    	jButton1.setBounds(513, 206, 243, 100);
	    	jButton1.setIcon(new ImageIcon(frame.class.getResource("asdf.png")));
	    {
	    	jButton2 = new JButton();
	    	jButton2.setText("Spiel beenden");
	    	fenster1.getContentPane().add(jButton2);
	    	jButton2.setBounds(513, 362, 243, 93);
	    	jButton2.setIcon(new ImageIcon(frame.class.getResource("Button 2.png")));
	    	jButton2.addActionListener(new ActionListener() {
	    		public void actionPerformed(ActionEvent evt) {
	    			jButton2ActionPerformed(evt);
	    		}
	    	});
	    }
	    {
	    	gui gui_IL = new gui();
	    	fenster1.getContentPane().add(gui_IL, new AnchorConstraint(3, 1000, 1005, 0, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
	    	gui_IL.setLayout(null);
	    	gui_IL.setBounds(0, -26, 1280, 720);
	    }
	    fenster1.setSize(1280, 720);
            gui gui = new gui();
		gui.setPreferredSize(fenster1.getSize());
		fenster1.getContentPane().repaint();
    }
	}

		


	
	

	
	public static void fenster(){
		JFrame frame = new JFrame("Lost in Rooms");
		frame.setSize(1280, 720);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    frame.getContentPane().setLayout(null);
	    frame.setResizable(false);
		frame.setVisible(true);
		{
			jTextField1 = new JTextField();
			frame.getContentPane().add(jTextField1, new AnchorConstraint(933, 748, 972, 199, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
			jTextField1.setPreferredSize(new java.awt.Dimension(748, 29));
			jTextField1.setBounds(251, 636, 694, 26);
			jTextField1.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					actionPerformed(evt);
				}
			});
		}
		{
			jTextArea1 = new JTextArea();
			frame.getContentPane().add(jTextArea1);
			jTextArea1.setBounds(251, 34, 694, 26);
		}
	}
	private static void jButton2ActionPerformed(ActionEvent evt) {
		System.exit(0);
		}
	private static void jTextField1ActionPerformed(ActionEvent evt) {
		String eingabe = jTextField1.getText();
		
		if (eingabe.equalsIgnoreCase("Öffne Schrank")) {
			ÖffneSchrankWurdeEingegeben = true;
			
		} else {
			
			if (eingabe.equals("Öffne Kommode")) {
				ÖffneKommodeWurdeEingegeben = true;
			} else {
				ÖffneKommodeWurdeEingegeben = false;
				ÖffneSchrankWurdeEingegeben = false;
			}
		}
		if (ÖffneKommodeWurdeEingegeben == true && KommodeIstOffen == false) {
			KommodeIstOffen = true;
			jTextArea1.setText("Die Kommode wurde geöffnet. Da liegt ja ein Schlüssel!");
		}
		if (ÖffneSchrankWurdeEingegeben == true && SchrankIstOffen == true) {
			jTextArea1.setText("Der Schrank wurde bereits geöffnet!");
	}
	if (ÖffneSchrankWurdeEingegeben == true && SchrankIstOffen == false) {
		SchrankIstOffen = true;
		jTextArea1.setText("Der Schrank wurde geöffnet. Da hängt ja eine Taschenlampe!");
	}
			
		}
}
```

gui: 
	
	
	
	





```
package video;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class gui extends JPanel{
	Image img;
	
	public gui() {
		setFocusable(true);
		ImageIcon u = new ImageIcon("C://Users//Hao//Desktop//Kleinerer Hintergrund.png");
		img = u.getImage();
		
	}
	
	public void paint(Graphics g) {
		super.paint(g);
		Graphics2D f2 = (Graphics2D)g;
		f2.drawImage(img, 0, 0, null);
	}


}
```


----------



## Tiding (8. Dez 2013)

```
gui gui_IL = new gui();
        fenster1.getContentPane().add(gui_IL, new AnchorConstraint(3, 1000, 1005, 0, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
        gui_IL.setLayout(null);
        gui_IL.setBounds(0, -26, 1280, 720);
       
        fenster1.setSize(1280, 720);
            gui gui = new gui();
        gui.setPreferredSize(fenster1.getSize());
        fenster1.getContentPane().repaint();
```

Entferne ich alle unnötigen Klammern, alle Images und dieses Codeschnippsel, läuft das Programm.
Deswegen liegt es wohl an deiner gui!
Vorallem kann ich mich mit dem Pfad: "C://Users//Hao//Desktop//Kleinerer Hintergrund.png" definitiv nicht so richtig anfreunden.


----------

