TrodelHD

Untitled

Apr 2nd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. package Spiel;
  2.  
  3. import java.awt.BasicStroke;
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.awt.Graphics2D;
  7. import java.awt.Image;
  8. import java.awt.RenderingHints;
  9. import java.awt.event.MouseAdapter;
  10. import java.awt.event.MouseEvent;
  11. import java.awt.event.MouseMotionAdapter;
  12. import java.io.File;
  13. import java.io.IOException;
  14. import java.util.ArrayList;
  15.  
  16. import javax.imageio.ImageIO;
  17. import javax.swing.JComponent;
  18.  
  19.  
  20. public class DrawArea extends JComponent {
  21.  
  22. public Connection con;
  23.  
  24. public int radius;
  25. // Image in which we're going to draw
  26. private Image image;
  27. // Graphics2D object ==> used to draw on
  28. private Graphics2D g2;
  29. // Mouse coordinates
  30. private int currentX, currentY, oldX, oldY;
  31. //Send arr
  32.  
  33. public DrawArea() {
  34. ar= "";
  35. setDoubleBuffered(false);
  36. addMouseListener(new MouseAdapter() {
  37. public void mousePressed(MouseEvent e) {
  38. // save coord x,y when mouse is pressed
  39. oldX = e.getX()-20;
  40. oldY = e.getY()-20;
  41. }
  42. });
  43.  
  44. addMouseMotionListener(new MouseMotionAdapter() {
  45. public void mouseDragged(MouseEvent e) {
  46. // coord x,y when drag mouse
  47. currentX = e.getX()-20;
  48. currentY = e.getY()-20;
  49.  
  50. if (g2 != null) {
  51. // draw line if g2 context not null
  52.  
  53. g2.setStroke(new BasicStroke(radius, 1, 1));
  54. g2.drawLine(oldX, oldY, currentX, currentY);
  55. g2.setStroke(new BasicStroke(radius));
  56. //g2.drawOval(oldX, oldY, 20, 20);
  57. //g2.fillOval(currentX, currentY, radius, radius);
  58. // refresh draw area to repaint
  59. repaint();
  60. addtoArray(radius, oldX, oldY, currentX, currentY,g2.getColor().getRed(),g2.getColor().getGreen(),g2.getColor().getBlue());
  61. // store current coords x,y as olds x,y
  62. oldX = currentX;
  63. oldY = currentY;
  64. }
  65. }
  66. });
  67. AktivateSender();
  68. }
  69.  
  70. protected void paintComponent(Graphics g) {
  71. if (image == null) {
  72. // image to draw null ==> we create
  73. image = createImage(900, 830);
  74.  
  75. //image = createImage(900, 1000);
  76. g2 = (Graphics2D) image.getGraphics();
  77. // enable antialiasing
  78. g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  79. // clear draw area
  80. clear();
  81. }
  82.  
  83. g.drawImage(image, 20, 20, null);
  84. }
  85.  
  86. // now we create exposed methods
  87. public void clear() {
  88. g2.setPaint(Color.white);
  89. // draw white on entire draw area to clear
  90. g2.fillRect(-20, -20, getSize().width, getSize().height);
  91. g2.setPaint(Color.black);
  92. con.serversendMessage("clear");
  93. repaint();
  94. }
  95.  
  96. public void setColor(Color c) {
  97. // apply red color on g2 context
  98. g2.setPaint(c);
  99. }
  100. private String ar;
  101. public void addtoArray(int radius,int oldX,int oldY,int currentX,int currentY,int r,int g,int b){
  102. String st = "";
  103. st=st+(radius)+" ";
  104. st=st+(oldX)+" ";
  105. st=st+(oldY)+" ";
  106. st=st+(currentX)+" ";
  107. st=st+(currentY)+" ";
  108. st=st+(r)+" ";
  109. st=st+(g)+" ";
  110. st=st+(b)+System.getProperty("line.separator");
  111. this.ar=ar+st;
  112. }
  113. private boolean run;
  114. public void AktivateSender(){
  115. run = true;
  116. Thread Sender = new Thread(){
  117. public void run(){
  118. while(run){
  119. try {sleep(200);} catch (Exception e) {}
  120. if(ar.length()!=0){
  121. con.serversendMessage(ar);
  122. ar="";
  123. }
  124. }
  125. }
  126. };
  127. Sender.start();
  128. }
  129. public void DeaktivateSender(){
  130. run= false;
  131. }
  132.  
  133. }
Advertisement
Add Comment
Please, Sign In to add comment