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