Hallo,
ich schreibe momentan ein 2D-Spiel, für das ich ein Menü mit Hilfe von Buttons realisieren möchte.
Weil ich damit nur Probleme hatte, habe ich mir aus dem Internet ein sehr kurzes Test-Programm besorgt:
Das Problem:
Normalerweise funktioniert alles wunderbar, der Button wird gezeichnet und alles ist in Ordnung. Setze ich den Frame jedoch in Zeile 28 in den Vollbild-Modus, wird der Button nicht mehr angezeigt.
Streiche ich die eine Zeile geht es wieder. Tritt sowohl bei Buttons, als auch bei JButtons auf.
Minimiere ich das Fenster hängt es ca. eine Sekunde, für diese kurze Zeit sehe ich den Button. Auch wenn ich bei Windows 7 die Maus auf das Symbol in der Taskleiste halte, sehe ich in der Vorschau den Button. Allerdings erscheint auch NUR der Button.
Scheint also ein Update-Problem zu sein !?
Weder button.update(Graphics), noch button.repaint() haben geholfen...
ich schreibe momentan ein 2D-Spiel, für das ich ein Menü mit Hilfe von Buttons realisieren möchte.
Weil ich damit nur Probleme hatte, habe ich mir aus dem Internet ein sehr kurzes Test-Programm besorgt:
Java:
public static void main(String[] args) {
int width = 1920;
int height = 1080;
GraphicsEnvironment graphEnv =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice graphDevice = graphEnv.getDefaultScreenDevice();
GraphicsConfiguration graphicConf =
graphDevice.getDefaultConfiguration();
JFrame jFrame = new JFrame(graphicConf);
JButton button = new JButton("Jingle Bells");
button.setBounds(100, 100, 100, 100);
jFrame.add(button);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setTitle("double buffer demo");
jFrame.setResizable(false);
jFrame.setFocusTraversalKeysEnabled(false);
Canvas canvas = new Canvas();
canvas.setSize(width, height);
canvas.setIgnoreRepaint(true);
jFrame.getContentPane().add(canvas);
jFrame.pack();
jFrame.show();
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(jFrame);
canvas.createBufferStrategy(2); // must be after we are visible!
BufferStrategy bufferStrategy = canvas.getBufferStrategy();
while(true) {
Graphics g = bufferStrategy.getDrawGraphics();
g.setColor(Color.BLACK);
g.fillRect(0,0,width,height);
g.setColor(Color.RED);
g.drawLine((int)(Math.random()*width),(int)(Math.random()*height),
(int)(Math.random()*width),(int)(Math.random()*height));
bufferStrategy.show();
g.dispose();
}
}
Das Problem:
Normalerweise funktioniert alles wunderbar, der Button wird gezeichnet und alles ist in Ordnung. Setze ich den Frame jedoch in Zeile 28 in den Vollbild-Modus, wird der Button nicht mehr angezeigt.
Streiche ich die eine Zeile geht es wieder. Tritt sowohl bei Buttons, als auch bei JButtons auf.
Minimiere ich das Fenster hängt es ca. eine Sekunde, für diese kurze Zeit sehe ich den Button. Auch wenn ich bei Windows 7 die Maus auf das Symbol in der Taskleiste halte, sehe ich in der Vorschau den Button. Allerdings erscheint auch NUR der Button.
Scheint also ein Update-Problem zu sein !?
Weder button.update(Graphics), noch button.repaint() haben geholfen...