Please Critique Code (Java, Java2D, javax.swing.Timer)
- by Trizicus
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++;
    }
}