# JFrame wird nicht angezeigt.



## Rubylux (14. Nov 2007)

Mein Java Kenntnisse sind sehr bescheiden und daher bringen mich solche Fehler schon zum verzweifeln .. 
Mein Problem ist, dass ein JFrame von der Klasse Oberflaeche erzeugt werden soll, das eine JMenuBar enthält. Dieses JFrame wird bei mir aber komplett nicht angezeigt. 


```
import java.awt.*;
import java.awt.event.*;

public class Steuerung
{
	Oberflaeche o;
	public Steuerung()
	{
		o = new Oberflaeche(this);
	}
	public static void main(String args[])
	{
		System.out.println("Starting App");
		Steuerung m = new Steuerung();
	}
}
```


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

public class Oberflaeche extends JFrame implements WindowListener, ActionListener, ItemListener
{
	
	JMenuItem miStart = new JMenuItem("Start");
	JMenuItem miNeustart = new JMenuItem("Restart");
	JMenuItem miEnde = new JMenuItem("Quit");

	Steuerung stg;
	
	public Oberflaeche()	{ }
	public Oberflaeche(Steuerung s)
	{
		stg = s;
		JMenuBar menubar = new JMenuBar();
		menubar.add( erstelleGameMenu() );
		setJMenuBar(menubar);
		this.setSize(600,400);
		setTitle("Kästchen ziehen - Welcome");
		setLocationRelativeTo(null);
		setBackground(Color.gray);
	}
	public static void main(String[] args)
	{
		Oberflaeche wnd = new Oberflaeche();
		wnd.setLocation(100,100);
		wnd.setSize(300,200);
		wnd.setVisible(true);
	}
	private JMenu erstelleGameMenu()
	{
		JMenu g = new JMenu("Game");
      		g.add(miStart);
      		g.add(miNeustart);
      		g.addSeparator();
      		g.add(miEnde);
		return g;
	}
	public void actionPerformed(ActionEvent e){
	}
	public void itemStateChanged(ItemEvent e){
	}
	public void windowActivated(WindowEvent e){}
	public void windowClosed(WindowEvent e){}
	public void windowClosing(WindowEvent e)
	{
		System.exit(0);
	}
	public void windowDeactivated(WindowEvent e){}
	public void windowDeiconified(WindowEvent e){}
	public void windowIconified(WindowEvent e){}
	public void windowOpened(WindowEvent e){}

}
```

Ich hab keinen Plan, woran das liegt. Ich hoffe, ihr könnt mir helfen ..


----------



## SlaterB (14. Nov 2007)

wenn du von Steuerung kommst, dann führt niemand die Befehle

wnd.setLocation(100,100); 
      wnd.setSize(300,200); 
      wnd.setVisible(true); 
aus wie du sie in der main von Oberfläche hast


----------



## Rubylux (14. Nov 2007)

hmm ..
und wie muss ich das ändern, damit das läuft .. ?


----------



## SlaterB (14. Nov 2007)

z.B. so


```
import java.awt.*;
import java.awt.event.*;

public class Steuerung
{
	Oberflaeche o;
	public Steuerung()
	{
		o = new Oberflaeche(this);
		Oberflaeche.show(o);
	}
	public static void main(String args[])
	{
		System.out.println("Starting App");
		Steuerung m = new Steuerung();
	}
}
```


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

public class Oberflaeche extends JFrame implements WindowListener, ActionListener, ItemListener
{
	
[..]
	public static void show(Oberflaeche wnd)
	{
		wnd.setLocation(100,100);
		wnd.setSize(300,200);
		wnd.setVisible(true);
	}
	public static void main(String[] args)
	{
		Oberflaeche wnd = new Oberflaeche();
		Oberflaeche.show(wnd);
	}
[..]
}
```


----------

