Hallo Leute, ich hab ein kleines Problem ich hab mir ein Tetris geschrieben und jetzt soll man sobald man verloren hat in ein Textfeld seinen namen eingeben können, und dannach soll das spiel von neu anfangen habe aber keine Ahnung wie ich das Textfield in mein Spiel einfüge hab schon viel probiert aber nix geschafft, würde mich über Hilfe freuen
Java:
import java.awt.AWTEvent;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Spiel extends Canvas implements Runnable{
boolean running = false;
String name ;
JTextField punkte = new JTextField("dein name ", 10);
Bildschirm bildschirm = new Bildschirm();
Einstellungen einstellungen = new Einstellungen();
Logik logik = new Logik();
//Launcher launcher = new Launcher();
Tastatur tastatur = new Tastatur();
int Breite = einstellungen.Breite;
int Höhe = einstellungen.Höhe;
int Blockgrösse = einstellungen.Blockgrösse;
int x = 100;
int v = 5;
int y = 100;
double ups = 100.0;
boolean launcher_an = false;
BufferedImage image;
Thread thread_1;
Highscore highscore;
JFrame frame = new JFrame();
int[] pixel = new int[Breite*Höhe];
public Spiel(){
Dimension size = new Dimension(Breite,Höhe);
setPreferredSize(size);
highscore = new Highscore();
image = new BufferedImage(Breite, Höhe,BufferedImage.TYPE_INT_RGB);
pixel = ((DataBufferInt)image.getRaster().getDataBuffer()).getData();
addKeyListener(tastatur);
}
public static void main(String [] args){
Spiel spiel = new Spiel();
spiel.frame.setResizable(false);
spiel.frame.setTitle("Tetris");
spiel.frame.add(spiel);
spiel.frame.pack();
spiel.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
spiel.frame.setLocationRelativeTo(null);
spiel.frame.setVisible(true);
spiel.start();
}
public void start(){
running = true;
thread_1 = new Thread(this, "Game");
thread_1.start();
}
public synchronized void stop(){
running = false;
try {
thread_1.join();
}
catch (InterruptedException e){
e.printStackTrace();
}
}
public void run() {
long lastTime = System.nanoTime();
long timer = System.currentTimeMillis();
final double ns = 1000000000.0 / ups;
double delta = 0;
int frames = 0;
int updates = 0;
requestFocus();
while(running){
long now = System.nanoTime();
delta += (now-lastTime) / ns;
lastTime = now;
while (delta >= 1){
update();
updates++;
delta--;
}
render();
frames++;
if (System.currentTimeMillis() - timer > 1000){
timer += 1000;
frame.setTitle( " | " + updates + " ups, " + frames + " fps");
updates = 0;
frames = 0;
}
}
stop();
}
public void update(){
tastatur.update();
//if(launcher_an)launcher.update(tastatur);
if(!logik.verloren) logik.update(tastatur);
}
public void render(){
BufferStrategy bs = getBufferStrategy();
if (bs == null){
createBufferStrategy(3);
return;
}
bildschirm.render(logik);
for(int i = 0; i < pixel.length; i++){
pixel[i] = bildschirm.pixel[i];
}
Graphics g = bs.getDrawGraphics();
//---------------------------------------
//---------------------------------------
//---------------------------------------
//if(logik.verloren)dann zeige Jtextfield an wo man namen eingeben kann, dann mache weiter wie gewohnt.
g.drawImage(image, 0, 0, getWidth(), getHeight(),null);
g.setColor(Color.GREEN);
String Punkte = "";
Punkte = String.valueOf(logik.punkte);
g.drawString(Punkte, 500, 60);
g.setColor(Color.BLUE);
g.drawString("HIGHSCORE", 470, 400);
g.drawString("--------------------", 470, 415);
g.setColor(Color.WHITE);
int i = 0;
for(String temp : highscore.everyLineList){
i++;
if(i >= 10)break;
g.drawString(temp, 470, 430+(i*15));
}
g.dispose();
bs.show();
}
}