זאת המחלקה העיקרית שמטפלת במסך:
import java.awt.Dimension; import java.awt.Graphics; import java.util.ArrayList; import javax.swing.JPanel; public class ScreenPanel extends JPanel implements Runnable { private Thread thread = new Thread(this); private Dimension mainSize; public static ArrayList <Dot> dots; private boolean isFirst = true; public ScreenPanel() { mainSize = Main.getMainSize(); thread.start(); } public void init() { dots = new ArrayList <Dot>(); } public void paintComponent(Graphics g) { DrawThis.draw(g, "bg"); DrawThis.draw(g, "board"); if (!dots.isEmpty()) { for (Dot d : dots) { d.draw(g); } } } @Override public void run() { while(true) { if (isFirst) { init(); isFirst = false; } repaint(); } } }
|
זאת הנקודה:
import java.awt.*; public class Dot extends Rectangle { public Dot (int x, int y) { setBounds (x, y, 5, 5); } public void draw(Graphics g) { g.setColor(Color.BLACK); g.fillOval(x, y, width, height); } }
|
וכאן אני מנתח כל שימוש בעכבר:
import java.awt.event.*; public class MouseHandler implements MouseListener, MouseMotionListener { @Override public void mouseDragged(MouseEvent e) { ScreenPanel.dots.add( new Dot (e.getX(), e.getY()) ); } @Override public void mouseMoved(MouseEvent e) { } @Override public void mouseClicked(MouseEvent e) { ScreenPanel.dots.add( new Dot (e.getX(), e.getY()) ); } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } }
|
יש כמובן גם את המחלקה שמציירת הכל, ואת זאת שמפעילה, אבל לא נראה לי רלוונטי.
תודה
