/* * To change this template, choose Tools | Templates * and open the template in the editor. */ import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.util.ArrayList; import javax.swing.JLabel; import javax.swing.JPanel; /** * * @author Administrator */ public class DrawPanel extends JPanel implements Runnable, MouseListener, MouseMotionListener{ private Thread animator; private final int DELAY = 50; boolean play=false; JLabel Txt = new JLabel("Coordinate"); ArrayList objectList = new ArrayList(); Graphics offBuffer; Beam beam; Image offImage; boolean isDrawing = false; public DrawPanel(){ super(); setPreferredSize(new Dimension(500,495)); setVisible(true); setBackground(Color.red); Txt.setOpaque(true); add(Txt); addMouseMotionListener(this); addMouseListener(this); setDoubleBuffered(true); beam = new Beam(); add(beam); } public void addComponentInPanel(GameObject pObject) { objectList.add(pObject); } @Override public void update(Graphics g){ paint(g); } @Override public void paintComponent(Graphics g){ if(offBuffer== null) { offImage = createImage(500,495); offBuffer = offImage.getGraphics(); } beam.offBuffer=offBuffer; beam.setBounds(0, 0, 100, 100); for(int i = 0;i470 || e.getY()<5 || e.getY()>470 ||e.getComponent() != this) Txt.setText(" "); else { Txt.setText("Point("+ (e.getX()-10)+","+ (e.getY()-5)+")"); } } @Override public void run() { // TODO Auto-generated method stub long beforeTime, timeDiff, sleep; play=true; beforeTime = System.currentTimeMillis(); int sasd=1; while (play) { gameLoop(); update(offBuffer); timeDiff = System.currentTimeMillis() - beforeTime; sleep = 1 - timeDiff; if (sleep < 0) sleep = 2; try { animator.sleep(50); } catch (InterruptedException e) { System.out.println("interrupted"); } beforeTime = System.currentTimeMillis(); sasd++; repaint(); updateUI(); if(!play) animator.yield(); } } public void gameLoop() { beam.updateBeam(); for(int i = 0;i