Hallo, meine Window-Klasse sieht zurzeit so aus:
Wie kann ich es schaffen, der BufferStrategy eine exakte Größe zu geben?
Wenn ich meiner Window-Klasse also der Canvas die Größe 600x600 zuweise, dann habe ich eine Zeichenfläche von 610x610. Einfach 590x590 zuweisen, würde sich dann trotzdem auf anderen Computern ändern, da die andere Layouts benutzen könnten. Oder hat das einen anderen Grund?
Naja, hoffe, dass ihr mir da ne schönere Lösung geben könnt.
Vielen Dank
Java:
package window;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.lang.reflect.InvocationTargetException;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class Window extends Canvas implements Runnable {
/**
*
*/
private static final long serialVersionUID = -7150710923108249953L;
private BufferStrategy bufferStrategy;
private JFrame frame;
public Window(int width, int height, String title) {
setPreferredSize(new Dimension(width, height));
frame = new JFrame(title);
frame.add(this);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
}
@Override
public void run() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
createBufferStrategy(2);
bufferStrategy = getBufferStrategy();
frame.setVisible(true);
setFocusable(true);
requestFocus();
}
});
while(true) {
Graphics g = bufferStrategy.getDrawGraphics();
g.setColor(Color.blue);
g.fillRect(0, 0, getWidth(), getHeight());
g.dispose();
bufferStrategy.show();
Thread.sleep(16);
}
} catch (InvocationTargetException | InterruptedException e) {}
}
}
Wie kann ich es schaffen, der BufferStrategy eine exakte Größe zu geben?
Wenn ich meiner Window-Klasse also der Canvas die Größe 600x600 zuweise, dann habe ich eine Zeichenfläche von 610x610. Einfach 590x590 zuweisen, würde sich dann trotzdem auf anderen Computern ändern, da die andere Layouts benutzen könnten. Oder hat das einen anderen Grund?
Naja, hoffe, dass ihr mir da ne schönere Lösung geben könnt.
Vielen Dank
Zuletzt bearbeitet: