Hi,
mysteriöserweise aktualisiert sich nicht das (Vollbild)Fenster. Ich sehe einfach nur einen blauen Hintergrund und nicht mal die Aufschrift "Hello World". Wenn ich die while-Schleife in der run-Methode entferne, sieht man den String (, aber er bewegt sich eben nicht. ).
Was ist falsch?
Liebe Grüße
Reality
mysteriöserweise aktualisiert sich nicht das (Vollbild)Fenster. Ich sehe einfach nur einen blauen Hintergrund und nicht mal die Aufschrift "Hello World". Wenn ich die while-Schleife in der run-Methode entferne, sieht man den String (, aber er bewegt sich eben nicht. ).
Was ist falsch?
Code:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Main extends JFrame implements Runnable{
final static FullScreen fullScreen = new FullScreen();
static boolean play = true;
int x = 0;
int y = 20;
private Graphics dbg;
private Image img;
Thread t = new Thread(this);
public static void main(String[] args) {
Main window = new Main();
window.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent ke){
if(ke.getKeyCode() == KeyEvent.VK_ESCAPE){
fullScreen.restoreScreen();
play = false;
}
}
});
window.runGame();
}
void runGame(){
setBackground(Color.BLUE);
setForeground(Color.WHITE);
setFont(new Font("Dialog", Font.PLAIN, 20));
DisplayMode displayMode;
displayMode = new DisplayMode(1024, 768, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
fullScreen.setFullScreen(displayMode, this);
t.start();
}
public void paint(Graphics g){
if(g instanceof Graphics2D){
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
}
g.drawString("Hello World", x, y);
}
public void update(Graphics g){
if(img == null){
img = createImage(1024, 768);
dbg = img.getGraphics();
}
dbg.setColor(getBackground());
dbg.fillRect(0, 0, 1024, 768);
dbg.setColor (getForeground());
paint(dbg);
g.drawImage(img, x, y, this);
}
public void run(){
while(play){
t.setPriority(Thread.MIN_PRIORITY);
x++;
try{
Thread.sleep( 20 );
}
catch( InterruptedException ex ){}
t.setPriority(Thread.MAX_PRIORITY);
repaint();
}
}
}
Liebe Grüße
Reality