Please Critique Code (Java, Java2D, javax.swing.Timer)

Posted by Trizicus on Stack Overflow See other posts from Stack Overflow or by Trizicus
Published on 2010-03-15T00:40:27Z Indexed on 2010/03/15 0:49 UTC
Read the original article Hit count: 434

Filed under:
|
|
|

Learn by practice right? Please critique and suggest anything! Thanks :)

import java.awt.EventQueue;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;

public class MainWindow
{
    public static void main(String[] args)
    {
        new MainWindow();
    }

JFrame frame;
GraphicsPanel gp = new GraphicsPanel();

MainWindow()
{
    EventQueue.invokeLater(new Runnable() {
        public void run() {

            frame = new JFrame("Graphics Practice");
            frame.setSize(680, 420);
            frame.setVisible(true);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            gp.addMouseListener(new MouseListener() {
                public void mouseClicked(MouseEvent e) {}
                public void mousePressed(MouseEvent e) {}
                public void mouseReleased(MouseEvent e) {}
                public void mouseEntered(MouseEvent e) {}
                public void mouseExited(MouseEvent e) {}
            });

            gp.addMouseMotionListener(new MouseMotionListener() {
                public void mouseDragged(MouseEvent e) {}
                public void mouseMoved(MouseEvent e) {}
            });

            frame.add(gp);
         }
      });
   }
}

GraphicsPanel:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.Timer;

public class GraphicsPanel extends JPanel {
    Test t;
    Timer test;

GraphicsPanel() {
    t = new Test();
    setLayout(new BorderLayout());
    add(t, BorderLayout.CENTER);
    test = new Timer(17, new Gameloop(this));
    test.start();
}

class Gameloop implements ActionListener
{
    GraphicsPanel gp;

    Gameloop(GraphicsPanel gp) {
        this.gp = gp;
    }

    public void actionPerformed(ActionEvent e) {
        try {
            t.incX();
            gp.repaint();
        } catch (Exception ez) { }
      }
   }
}

Test:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JComponent;

public class Test extends JComponent
{
    Toolkit tk;
    Image img;
    int x, y;

    Test()
    {
        tk = Toolkit.getDefaultToolkit();
        img = tk.getImage(getClass().getResource("images.jpg"));
        this.setPreferredSize(new Dimension(15, 15));
    }

    @Override
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g.create();

        g2d.setColor(Color.red);
        g2d.drawString("x: " + x, 350, 50);
        g2d.drawImage(img, x, 80, null);
        g2d.dispose();
    }

    public void incX()
    {
        x++;
    }
}

© Stack Overflow or respective owner

Related posts about java

Related posts about java2d