Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.AWTEvent;
- import java.awt.Canvas;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.GraphicsConfiguration;
- import java.awt.GraphicsEnvironment;
- import java.awt.Transparency;
- import java.awt.event.KeyEvent;
- import java.awt.image.BufferStrategy;
- import java.awt.image.BufferedImage;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- public class Example extends Canvas {
- static final int KEYS = 65536;
- int font_height = 10;
- int width_in_chars = 80;
- int height_in_chars = 40;
- BufferStrategy strategy;
- BufferedImage buffer;
- boolean keys[];
- public Example() {
- Font font = new Font(Font.MONOSPACED, Font.PLAIN, font_height);
- keys = new boolean[KEYS];
- int win_width = width_in_chars * getFontMetrics(font).charWidth(' ');
- int win_height = height_in_chars * font_height;
- JFrame f = new JFrame();
- JPanel p = (JPanel) f.getContentPane();
- p.setPreferredSize(new Dimension(win_width, win_width));
- p.setLayout(null);
- setBounds(0, 0, win_width, win_height);
- p.add(this);
- f.pack();
- f.setResizable(false);
- f.setTitle("Example Project");
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- f.setVisible(true);
- f.setFont(font);
- f.setLocationRelativeTo(null);
- createBufferStrategy(2);
- strategy = getBufferStrategy();
- GraphicsConfiguration gc = GraphicsEnvironment
- .getLocalGraphicsEnvironment().getDefaultScreenDevice()
- .getDefaultConfiguration();
- buffer = gc.createCompatibleImage(win_width, win_height,
- Transparency.OPAQUE);
- setIgnoreRepaint(true);
- enableEvents(AWTEvent.KEY_EVENT_MASK);
- }
- void mainLoop() {
- while (!keys[KeyEvent.VK_ESCAPE]) {
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) { }
- // draw on buffer
- buffer.getGraphics().drawLine(0, 0, 100, 100);
- // blit buffer to screen
- Graphics2D g = (Graphics2D) strategy.getDrawGraphics();
- paint(g);
- g.dispose();
- strategy.show();
- }
- }
- @Override
- public void paint(Graphics g) {
- g.drawImage(buffer, 0, 0, this);
- }
- @Override
- public void processKeyEvent(KeyEvent e) {
- keys[e.getKeyCode()] = e.getID() == KeyEvent.KEY_PRESSED;
- }
- public static void main(String[] args) {
- new Example().mainLoop();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement