Fastchiller
Grünschnabel
Guten Morgen alle zusammen,
Ich programmiere mir hier gerade ein Spiel zusammen.Und bei dieser Klasse handelt es sich um die Spieleinstellungen.
Problem: Wenn ich den Code in Eclipse(Version 3.2.2) ausführe bekomme ich folgenden Fehler:
Unter diesem Link habe ich folgendes gefunden:
Hoffe ihr könnt mir weiter helfen.
Neben bei noch der Code:
Danke für die schnelle Hilfe
Mfg Fastfchiller
Ich programmiere mir hier gerade ein Spiel zusammen.Und bei dieser Klasse handelt es sich um die Spieleinstellungen.
Problem: Wenn ich den Code in Eclipse(Version 3.2.2) ausführe bekomme ich folgenden Fehler:
Exception in thread "main" java.lang.NullPointerException
at firstgame.Settings.setPositionElement(Settings.java:70)
at firstgame.Settings.<init>(Settings.java:99)
at firstgame.Settings.main(Settings.java:122)
Unter diesem Link habe ich folgendes gefunden:
Der Versuch auf eine Objektrefernz zu zugreifen, die den Wert null enthält. Die Referenz muss entweder mit einer anderen Referenz oder mit dem new-Operator initialisiert werden. Der Fehler kann auch im Zusammenhang mit Hüllklassen auftreten, dazu ein Beispiel:
public class Test {
public static void main(String[] args) {
Integer[] array = new Integer[5];
int i = array[0]; // <-- hier tritt die Exception auf
System.out.println(i);
}
}
Arrays werden in Java standardmäßig mit 0 bzw. null initialisiert. Daher kommt beim Compilieren keine Meldung vom Typ "variable *** might not have been initialized". Wird dann versucht mit dem Integer-Objekt zu arbeiten tritt die Exception auf.
Hoffe ihr könnt mir weiter helfen.
Neben bei noch der Code:
Code:
package firstgame;
import java.awt.Container;
import java.awt.Font;
import javax.swing.*;
/**
* @author Fastchiller
*/
public class Settings extends JFrame
{
// Attribute
private JFrame Frame;
private JButton bt_start;
private JLabel lb_playername;
private JLabel lb_rivalname;
private JLabel lb_misspic;
private JLabel lb_clickpic;
private JLabel lb_emptyfield;
private JLabel lb_fieldsize;
private JLabel lb_gamespeed;
private JLabel lb_pointmax;
private JLabel lb_addpic;
private JPanel Group;
private JPanel Board;
/**
* Create the components
*
*/
public void createComponents()
{
bt_start = new JButton("Spiel starten");
lb_playername = new JLabel("Spielername: ");
lb_rivalname = new JLabel("Gegnername: ");
lb_misspic = new JLabel("Punktevergabe(Bild verpasst): ");
lb_clickpic = new JLabel("Punktevergabe(Bild geklickt): ");
lb_emptyfield = new JLabel("Punktevergabe(leeres Feld geklickt): ");
lb_fieldsize = new JLabel("Spielfeldgrösse: ");
lb_gamespeed = new JLabel("Spielgeschwindigkeit: ");
lb_pointmax = new JLabel("Punktemaximum: ");
lb_addpic = new JLabel("Bild hinzufügen: ");
Group = new JPanel();
}
/**
* Height, border and font fix
*
*/
public void setFormLayout()
{
lb_playername.setFont (new Font ("Arial", Font.PLAIN, 12));
lb_rivalname.setFont (new Font ("Arial", Font.PLAIN, 12));
lb_misspic.setFont (new Font ("Arial", Font.PLAIN, 12));
lb_clickpic.setFont (new Font ("Arial", Font.PLAIN, 12));
lb_emptyfield.setFont (new Font ("Arial", Font.PLAIN, 12));
lb_fieldsize.setFont (new Font ("Arial", Font.PLAIN, 12));
lb_gamespeed.setFont (new Font ("Arial", Font.PLAIN, 12));
lb_pointmax.setFont (new Font ("Arial", Font.PLAIN, 12));
lb_addpic.setFont (new Font ("Arial", Font.PLAIN, 12));
}
/**
* Set the position of the Element
*
*/
public void setPositionElement()
{
Container c = Frame.getContentPane();
c.setLayout(null);
lb_playername.setBounds ( 10, 10, 250, 20);
lb_rivalname.setBounds ( 10, 40, 10, 20);
lb_misspic.setBounds ( 10, 70, 450, 210);
lb_clickpic.setBounds ( 10,100, 100, 20);
lb_emptyfield.setBounds ( 10,130, 50, 20);
lb_fieldsize.setBounds ( 10,160, 40, 20);
lb_gamespeed.setBounds ( 10,190, 48, 20);
lb_pointmax.setBounds ( 10,210, 95, 20);
lb_addpic.setBounds ( 10,240, 80, 20);
bt_start.setBounds (170,190, 75, 20);
c.add(lb_playername); c.add(lb_rivalname); c.add(lb_misspic); c.add(lb_clickpic);
c.add(lb_emptyfield); c.add(lb_fieldsize); c.add(lb_gamespeed); c.add(lb_pointmax);
c.add(lb_addpic); c.add(bt_start);
}
/**
* Constructer
*
*/
public Settings()
{
super("Spieleinstellungen");
// Create components
createComponents();
setFormLayout();
setPositionElement();
Board = new JPanel();
//Board.setLayout (new GridLayout(11,1));
// All insert
Board.add(lb_playername);
Board.add(lb_rivalname);
Board.add(lb_misspic);
Board.add(lb_clickpic);
Board.add(lb_emptyfield);
Board.add(lb_fieldsize);
Board.add(lb_gamespeed);
Board.add(lb_pointmax);
Board.add(lb_addpic);
Board.add(bt_start);
Board.add(Group);
setContentPane(Board);
}
public static void main(String[] args)
{
/**
* Create the frame 800 x 800 with the name "Spieleinstellungen"
*/
Settings Frame = new Settings();
Frame.setSize (800,800);
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Danke für die schnelle Hilfe
Mfg Fastfchiller