Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Spiel;
- import java.awt.BasicStroke;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Image;
- import java.awt.RenderingHints;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseMotionAdapter;
- import java.util.ArrayList;
- import javax.swing.JComponent;
- public class DrawArea extends JComponent {
- public Connection con;
- public int radius;
- // Image in which we're going to draw
- private Image image;
- // Graphics2D object ==> used to draw on
- private Graphics2D g2;
- // Mouse coordinates
- private int currentX, currentY, oldX, oldY;
- //Send arr
- public DrawArea() {
- ar= "";
- setDoubleBuffered(false);
- addMouseListener(new MouseAdapter() {
- public void mousePressed(MouseEvent e) {
- // save coord x,y when mouse is pressed
- oldX = e.getX()-20;
- oldY = e.getY();
- }
- });
- addMouseMotionListener(new MouseMotionAdapter() {
- public void mouseDragged(MouseEvent e) {
- // coord x,y when drag mouse
- currentX = e.getX()-20;
- currentY = e.getY();
- if (g2 != null) {
- // draw line if g2 context not null
- g2.setStroke(new BasicStroke(radius));
- g2.drawLine(oldX, oldY, currentX, currentY);
- //g2.drawOval(oldX, oldY, 20, 20);
- //g2.fillOval(currentX, currentY, radius, radius);
- // refresh draw area to repaint
- repaint();
- addtoArray(radius, oldX, oldY, currentX, currentY,g2.getColor().getRed(),g2.getColor().getGreen(),g2.getColor().getBlue());
- // store current coords x,y as olds x,y
- oldX = currentX;
- oldY = currentY;
- }
- }
- });
- AktivateSender();
- }
- protected void paintComponent(Graphics g) {
- if (image == null) {
- // image to draw null ==> we create
- image = createImage(480, 560);
- g2 = (Graphics2D) image.getGraphics();
- // enable antialiasing
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- // clear draw area
- clear();
- }
- g.drawImage(image, 20, 0, null);
- }
- // now we create exposed methods
- public void clear() {
- g2.setPaint(Color.white);
- // draw white on entire draw area to clear
- g2.fillRect(-20, 0, getSize().width, getSize().height);
- g2.setPaint(Color.black);
- con.serversendMessage("clear");
- repaint();
- }
- public void setColor(Color c) {
- // apply red color on g2 context
- g2.setPaint(c);
- }
- private String ar;
- public void addtoArray(int radius,int oldX,int oldY,int currentX,int currentY,int r,int g,int b){
- String st = "";
- st=st+(radius)+" ";
- st=st+(oldX)+" ";
- st=st+(oldY)+" ";
- st=st+(currentX)+" ";
- st=st+(currentY)+" ";
- st=st+(r)+" ";
- st=st+(g)+" ";
- st=st+(b)+System.getProperty("line.separator");
- this.ar=ar+st;
- }
- private boolean run;
- public void AktivateSender(){
- run = true;
- Thread Sender = new Thread(){
- public void run(){
- while(run){
- try {sleep(200);} catch (Exception e) {}
- if(ar.length()!=0){
- con.serversendMessage(ar);
- ar="";
- }
- }
- }
- };
- Sender.start();
- }
- public void DeaktivateSender(){
- run= false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement