Post: [Java] Simple GUI With DoubleBuffered Panel
02-17-2012, 08:04 PM #1
tylerallmighty
Human After All
(adsbygoogle = window.adsbygoogle || []).push({}); Here's a simple JFrame with a DoubleBuffered Panel. This can be used to start with a 2D game (That's why I started it. :lolSmile. It's made 100% by me with some light commenting where I felt like it.

I've been working on it since this morning, and it's my first attempt at DoubleBuffering. Happy Took some trial and error but I'm quite proud and plan to further this into something bigger.

Tutorial will be done if wanted. :y:

EDIT: 2500th post. Upside Down Happy

You must login or register to view this content.


    [FONT=Verdana]import javax.swing.*;[/FONT]
[FONT=Verdana]import java.awt.*;[/FONT]
[FONT=Verdana]import java.awt.event.*;[/FONT]
[FONT=Verdana]import java.awt.image.*;[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana]public class Game implements KeyListener {[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] // Frame/Panel Vars[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public static int WIDTH = 640;[/FONT]
[FONT=Verdana] public static int HEIGHT = 480;[/FONT]
[FONT=Verdana] public static String TITLE = "TITLE";[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public JFrame frame = new JFrame();[/FONT]
[FONT=Verdana] public JPanel screen = new JPanel();[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] private int num = 0;[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] // Buffered Image[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public BufferedImage buffer = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] // Run Game[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public Game() {[/FONT]
[FONT=Verdana] window();[/FONT]
[FONT=Verdana] while (true) {[/FONT]
[FONT=Verdana] try {[/FONT]
[FONT=Verdana] buffer();[/FONT]
[FONT=Verdana] buffer01();[/FONT]
[FONT=Verdana] System.out.println("Buffered/Ran " + num++ + " times");[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] Thread.sleep(30);[/FONT]
[FONT=Verdana] } catch (Exception e) {[/FONT]
[FONT=Verdana] e.printStackTrace();[/FONT]
[FONT=Verdana] System.out.println("ERROR");[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] // Buffer Graphics[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] private void buffer() {[/FONT]
[FONT=Verdana] Graphics2D b = buffer.createGraphics();[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] b.setColor(Color.DARK_GRAY);[/FONT]
[FONT=Verdana] b.fillRect(0, 0, WIDTH, HEIGHT);[/FONT]
[FONT=Verdana] b.dispose();[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] private void buffer01() {[/FONT]
[FONT=Verdana] Graphics2D g = (Graphics2D) screen.getGraphics();[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] g.drawImage(buffer, 0, 0, screen);[/FONT]
[FONT=Verdana] Toolkit.getDefaultToolkit().sync();[/FONT]
[FONT=Verdana] // g.dispose();[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] // Init Frame/Panel[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public void window() {[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] frame.setTitle(TITLE);[/FONT]
[FONT=Verdana] frame.setSize(WIDTH, HEIGHT);[/FONT]
[FONT=Verdana] frame.setResizable(false);[/FONT]
[FONT=Verdana] frame.setVisible(true);[/FONT]
[FONT=Verdana] frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);[/FONT]
[FONT=Verdana] frame.getContentPane().add(screen);[/FONT]
[FONT=Verdana] frame.setLocationRelativeTo(null);[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] screen.setIgnoreRepaint(true);[/FONT]
[FONT=Verdana] screen.addKeyListener(this);[/FONT]
[FONT=Verdana] screen.setFocusable(true);[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] // Main. Duh[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public static void main(String[] args) {[/FONT]
[FONT=Verdana] new Game();[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] // KeyEvent's[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public void keyTyped(KeyEvent e) {[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public void keyPressed(KeyEvent e) {[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] public void keyReleased(KeyEvent e) {[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana] }[/FONT]
[FONT=Verdana]
[/FONT]
[FONT=Verdana]}[/FONT]
(adsbygoogle = window.adsbygoogle || []).push({});

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo