Hallo, ich bin gerade dabei, mein erstes Java-Spiel zu programmieren. Am Anfang bin ich gut vorangekommen, aber jetzt bin ich auf ein Problem gestoßen.
1.Frage:
Mein Highscore-Fenster wird nicht visible.
2.Frage:
Wenn das Spiel gewonnen wurde, dann öffnet sich ein Fenster, in das man den Namen eintippen kann, aber wie übergebe ich den Namen und die Zeit an die Highscore-Liste?
Hier folgt nun mein quellcode für die Highscore-Liste.
Ist der so korrekt? Könnte es überhaupt funktionieren?
Vielen Dank schon einmal im voraus!!!
1.Frage:
Mein Highscore-Fenster wird nicht visible.
2.Frage:
Wenn das Spiel gewonnen wurde, dann öffnet sich ein Fenster, in das man den Namen eintippen kann, aber wie übergebe ich den Namen und die Zeit an die Highscore-Liste?
Hier folgt nun mein quellcode für die Highscore-Liste.
Ist der so korrekt? Könnte es überhaupt funktionieren?
Vielen Dank schon einmal im voraus!!!
Code:
public class Highscore extends JFrame
{
public Spieler[] Topspieler = new Spieler[5];
public JLabel[] Ranking = new JLabel[5];
public class Spieler
{
private int zeit;
private String name;
public Spieler( String name, int punkte ){
this.name = name;
this.zeit = punkte;
}
public int compareTo( Spieler argument ) {
if( zeit < argument.zeit )
return 1;
if( zeit > argument.zeit )
return -1;
return 0;
}
public String toString() {
return name + " (" + zeit + " Zeit)";
}
}
public void sortHighscore (Spieler[] Topspieler){
// hier wird sortiert
Arrays.sort( Topspieler );
for ( int i=0; i<5;i++){
Ranking[i].setText(Topspieler[i].toString());
}
}
public Highscore()
{
setLocation(500, 175);
setSize(500, 300);
setResizable(false);
setVisible(false);
//Erzeugen eines Objektes der Klasse WindowAdapter,
//implementieren der Schnittstelle WindowListener
addWindowListener(new WindowAdapter()
{
public void windowClosing (WindowEvent e)
{
setVisible(false);
}
});
Container highscore = getContentPane();
JPanel westPanel =new JPanel();
JPanel eastPanel =new JPanel();
JPanel northPanel =new JPanel();
JPanel southPanel = new JPanel();
JPanel centerPanel = new JPanel();
//in diesem Panel wird das GridLayout verwendet
northPanel.setLayout(new GridLayout(2,1));
//Erzeugung von 2 Label, die dem Panel zugefügt werden
JLabel label1, label2;
label1 =new JLabel("Highscore");
label2 =new JLabel(" Name: Zeit:");
label1.setFont (new Font("SansSerif", Font.BOLD, 18));
label2.setFont (new Font("SansSerif", Font.PLAIN, 13));
northPanel.add(label1,BorderLayout.NORTH);
northPanel.add(label2,BorderLayout.NORTH);
northPanel.setBackground (Color.yellow);
//das Panel wird dem Container im Norden zugefügt
highscore.add(northPanel,BorderLayout.NORTH);
southPanel.setBackground(Color.yellow);
highscore.add(southPanel, BorderLayout.SOUTH);
//im westPanel wird das GridLayout verwendet
westPanel.setLayout(new GridLayout(5,1));
//Erzeugung von 5 Label, die dem Panel zugefügt werden
JLabel platz1, platz2, platz3, platz4, platz5;
platz1 =new JLabel("1.");
platz2 =new JLabel("2.");
platz3 =new JLabel("3.");
platz4 =new JLabel("4.");
platz5 =new JLabel("5.");
platz1.setFont (new Font("SansSerif", Font.PLAIN, 15));
platz2.setFont (new Font("SansSerif", Font.PLAIN, 15));
platz3.setFont (new Font("SansSerif", Font.PLAIN, 15));
platz4.setFont (new Font("SansSerif", Font.PLAIN, 15));
platz5.setFont (new Font("SansSerif", Font.PLAIN, 15));
westPanel.add(platz1,BorderLayout.WEST);
westPanel.add(platz2,BorderLayout.WEST);
westPanel.add(platz3,BorderLayout.WEST);
westPanel.add(platz4,BorderLayout.WEST);
westPanel.add(platz5,BorderLayout.WEST);
westPanel.setBackground (Color.yellow);
highscore.add(westPanel,BorderLayout.WEST);
centerPanel.setLayout(new GridLayout(9,4));
for (int k=0;k<6;k++){
Ranking[k] = new JLabel("");
Ranking[k].setSize(300,100);
Ranking[k].setFont (new Font("SansSerif", Font.PLAIN, 15));
centerPanel.add(Ranking[k]);
}
centerPanel.setBackground(Color.white);
highscore.add(centerPanel);
//das Panel wird dem Container im Süden zugefügt
highscore.add(southPanel,BorderLayout.SOUTH);
//Platzhalter Panel
eastPanel.setBackground (Color.yellow);
highscore.add(eastPanel,BorderLayout.EAST);
Topspieler[0]=new Spieler( "Lars (Development)", 6600 );
Topspieler[1]=new Spieler( "Jens (Design)", 1000 );
Topspieler[2]=new Spieler( "Jerome (Vertrieb)", 800 );
Topspieler[3]=new Spieler( "Bernd (Netzwerk)", 800 );
Topspieler[4]=new Spieler( "Rike (Buchhaltung)", 2000 );
int spielzeit=900;
Topspieler[5]=new Spieler( "Neuer Spieler", spielzeit );
sortHighscore (Topspieler);
}
}