Drag n Drop проблэм трабл!

 
 
 
Сообщения:37
В сети нашел код крутой рабочий см ниже. Задача когда тащу круги почему-то остаются тени от них (такие же еле заметные круги).В чем причина где убрать чего прибавить чтобы работало без теней?Помогите пожалуйста.Нет.Делов вот в чем хочу нарисовать задний фон типа fillRectangle и добавить шахматную доску а это не получается из-за того ... скажите почему?Главный вопрос как добавить задний фон чтобы все при этом двигалось и работало!!!Плиз хелп?
package j;

import java.awt.Container;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Ellipse2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Heyk extends JPanel implements MouseMotionListener {

    private static final int recW = 14;
    private static final int MAX = 4;
    private Ellipse2D.Double[] rect = new Ellipse2D.Double[MAX];
    private int numOfRecs = 0;
    private int currentSquareIndex = -1;

    public Heyk() {

  addMouseListener(new MouseAdapter() {

@Override

public void mousePressed(MouseEvent evt) {

    int x = evt.getX();

    int y = evt.getY();

    currentSquareIndex = getRec(x, y);

    if (currentSquareIndex < 0) // not inside a square

    {

  add(x, y);

    }

}

@Override

public void mouseClicked(MouseEvent evt) {

    int x = evt.getX();

    int y = evt.getY();

    if (evt.getClickCount() >= 2) {

  remove(currentSquareIndex);

    }

}

  });

  addMouseMotionListener(this);
    }

    @Override
    public void paintComponent(Graphics g) {

  super.paintComponent(g);

  for (int i = 0; i < numOfRecs; i++) {
//if(i<4){
((Graphics2D) g).draw(rect[i]);
//}
  }
    }

    public int getRec(int x, int y) {

  for (int i = 0; i < numOfRecs; i++) {

if (rect[i].contains(x, y)) {

    return i;

}

  }

  return -1;
    }

    public void add(int x, int y) {

  if (numOfRecs < MAX) {

rect[numOfRecs] = new Ellipse2D.Double(x, y, recW, recW);

currentSquareIndex = numOfRecs;

numOfRecs++;

repaint();
  }
    }

    @Override
    public void remove(int n) {

  if (n < 0 || n >= numOfRecs) {

return;

  }

  numOfRecs--;

  rect[n] = rect[numOfRecs];

  if (currentSquareIndex == n) {

currentSquareIndex = -1;

  }

  repaint();
    }

    @Override
    public void mouseMoved(MouseEvent event) {

  int x = event.getX();

  int y = event.getY();

  if (getRec(x, y) >= 0) {

setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));

  } else {

setCursor(Cursor.getDefaultCursor());

  }
    }

    @Override
    public void mouseDragged(MouseEvent event) {

  int x = event.getX();

  int y = event.getY();

  if (currentSquareIndex >= 0) {

Graphics graphics = getGraphics();

graphics.setXORMode(getBackground());

((Graphics2D) graphics).draw(rect[currentSquareIndex]);

rect[currentSquareIndex].x = x;

rect[currentSquareIndex].y = y;

((Graphics2D) graphics).draw(rect[currentSquareIndex]);

graphics.dispose();

  }
    }

    public static void main(String[] args) {

  JFrame jFrame = new JFrame();

  jFrame.setTitle("");

  jFrame.setSize(300, 200);

  jFrame.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

    System.exit(0);

}

  });

  Container cPane = jFrame.getContentPane();

  cPane.add(new Heyk());

  jFrame.setVisible(true);
    }
}




Надо убрать тени от кругов пожалуйста хелп ми!

!y=f(x)
Изменен:03 июн 2018 16:37
 
 
Сообщения:297
UserSuperPupsik:
когда тащу круги почему-то остаются тени от них

Попробуйте в методе "void mouseDragged(MouseEvent event)" вызвать перерисовку методом "repaint()".
 
 
Сообщения:37
огонь, ты простосупер!

!y=f(x)
 
 
Сообщения:37
читай буквы а не слова!

!y=f(x)
 
 
Сообщения:37
Как теперь поменять цвета и сказать чтобы рисовались круги а не ректэнгл причем нужно ,чтобы они были fill, а не draw (нужны сплошные) , и их нужно заменить цветами чтобы половина была зеленой а половина черной извините пожалуйста подсказка я не святой!А еще я хочу полцарства и жены!)))

!y=f(x)
Изменен:11 июн 2018 05:08
 
 
Сообщения:37
все тип топ скоро!
Ваш текст

!y=f(x)
 
 
Сообщения:37
Пишу уголки драг н дроп метод тестю! вот мой код! скоро выложу все: src и exe!
package j;
 
import static com.sun.java.accessibility.util.AWTEventMonitor.addMouseListener;
import java.util.regex.Pattern;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Ellipse2D;
import java.util.regex.Pattern;
import javax.swing.JFrame;
import javax.swing.JPanel;



 
//public class HeSheShit extends JPanel implements MouseMotionListener {
 public class O8H12 extends JPanel implements MouseMotionListener {
  
/**
 * @author Arthur Alunts Arthurovich
 * @tel : +79923502524
*/

  public static int R1=724,R2=724;
  public static JFrame jf=new JFrame();
  public static int n=45;
  public static String de=",";
  public static double q=64.0;
  public static double p=Math.PI/q;
  public static double R=44;
  public static int y=1;
  public static int x=1;
  public static double r=12;
  public static double h=11;
  
  public static int C=100;
  public static double t[];
  public static int CY=0;
  public static int CX=0;
  public static double x2[]=new double[110+1];
  public static double y2[]=new double[110+1];
  public static double CellSize=80.0;
  public static double[]Xp=new double[110+1];
  public static double[]Yp=new double[110+1];
  public static double FigureSize=74.0;
  public static double Delay =(CellSize-FigureSize)/2.0;
  public static int alt=1;
  public static double[]Ycu;
  public static double[]Xcu;       
  public static String[][] G=new String[12+1][12+1];
  public static int[][] M =new int[12+1][12+1];
  public static String []F =new String[18+1];
  public static String[] Moved=new String[200];  
  public static int E[][]=new int[9][9];
//public static String []A_Table =new String[1+18]; 
  
  public static String TS[];
  public static int TI[];
  
  public static int a=0;
  public static int b=0;
  public static int c=0;
  public static int d=0;
  
  
  public static String[] Move=new String[1000];
  
  
     
     private static final int recW = (int)CellSize;
    private static final int MAX = 18;
    private Ellipse2D.Double[] rect = new Ellipse2D.Double[MAX];
    private int numOfRecs = 0;
    private int currentSquareIndex = -1;
 public static void G(){//Заполним координаты G[y][x]=gy_gx
   Xcu= new double[100+1];
   Ycu= new double[100+1];   
   
       int ii=0;
   
   
   C=10;
   for(int y=1; y<=9;y=y+1){
   for(int x=1; x<=9;x=x+1){
    ii++;
    x2[ii]=C+x*CellSize;
    y2[ii]=C+y*CellSize;
    G[y][x]=(int)(C+y*CellSize)+de+(int)(C+x*CellSize);
       
       //Xp[ii]=C+x*CellSize+CellSize/2.0;
       //Yp[ii]=C+y*CellSize+CellSize/2.0;
       
      // System.out.println("Stringer "+ G[y][x]  );
       
   
   }}
   
   
   //Запоним M[]
   for(int y=1; y<=8;y=y+1){
   for(int x=1; x<=8;x=x+1){
   M[y][x]=0;
   //T[y][x]=0;
   
   }
   }
   
     
   
   
   
    
     
  M[1][6]=3;F[3]=1+de+6+de+G[1][6];
  M[1][7]=2;F[2]=1+de+7+de+G[1][7];
  M[1][8]=1;F[1]=1+de+8+de+G[1][8];
  M[2][6]=6;F[6]=2+de+6+de+G[2][6];
  M[2][7]=5;F[5]=2+de+7+de+G[2][7];
  M[2][8]=4;F[4]=2+de+8+de+G[2][8];
  M[3][6]=9;F[9]=3+de+6+de+G[3][6];
  M[3][7]=8;F[8]=3+de+7+de+G[3][7];
  M[3][8]=7;F[7]=3+de+8+de+G[3][8];
  M[6][1]=16;F[16]=6+de+1+de+G[6][1];
  M[7][1]=17;F[17]=7+de+1+de+G[7][1];
  M[8][1]=18;F[18]=8+de+1+de+G[8][1];
  M[6][2]=13;F[13]=6+de+2+de+G[6][2];
  M[7][2]=14;F[14]=7+de+2+de+G[7][2];
  M[8][2]=15;F[15]=8+de+2+de+G[8][2];
  M[6][3]=10;F[10]=6+de+3+de+G[6][3];
  M[7][3]=11;F[11]=7+de+3+de+G[7][3];
  M[8][3]=12;F[12]=8+de+3+de+G[8][3];
   
   }
  
    public O8H12() {
 
  addMouseListener(new MouseAdapter() {
 
@Override
 
public void mousePressed(MouseEvent evt) {
 
    int x = evt.getX();
 
    int y = evt.getY();
 
    currentSquareIndex = getRec(x, y);
 
    if (currentSquareIndex < 0) // not inside a square
 
    {int f=0;   
      TS=null;
       TI=null;
        TI=new int[4];
         
    for(int i=1; i<=18;i=i+1){
       
          f++;
            
           TS=F[f].split(Pattern.quote(de));
            TI[0]=Integer.valueOf(TS[0]);
              TI[1]=Integer.valueOf(TS[1]);
                TI[2]=Integer.valueOf(TS[2]);
                  TI[3]=Integer.valueOf(TS[3]);
             
            a=TI[0];
            b=TI[1];
            c=TI[2];
            d=TI[3];
            
 
  add(c, d);
 
    }}
 
}
 
@Override
 
public void mouseClicked(MouseEvent evt) {
 
    int x = evt.getX();
 
    int y = evt.getY();
 
    if (evt.getClickCount() >= 2) {
 
  remove(currentSquareIndex);
 
    }
 
}
 
  });
 
  addMouseMotionListener(this);
    }
 
    @Override
protected void paintComponent(Graphics g)
  {
    try {
           
        super.paintComponent(g);
         
          
      
            
            
            Graphics2D g2d = (Graphics2D) g;
           
           g2d.setStroke(new BasicStroke(1.1f));  // толщина равна 10
            
            
            /*
            g2d.setRenderingHint(
                    RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
            */
// You can also enable antialiasing for text:

//g2d.setRenderingHint(
   //     RenderingHints.KEY_TEXT_ANTIALIASING,
    //    RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
//write either "RED" or "BLUE" using graphics
g.setColor(Color.LIGHT_GRAY);
//g.drawRect(0, 0, 100, 100);

g.setFont(new Font("serif", Font.BOLD, 60));

Color c1 = new Color(240, 240, 245);//желтый
Color c2 = new Color(232, 134, 36);    //рыжий
Color c3 = new Color(255, 255, 255);      //белый
Color c4 = new Color(0, 0, 0);      //черный
Color c5 = new Color(2, 193, 88); //берюзовый

Color c6 = new Color(253, 179, 53);// Orange 2   

     
      

g.setColor(Color.BLACK);
for(int i=1;i<=81;i++){
    
   g2d.drawRect((int)x2[i],(int)y2[i],(int)CellSize,(int)CellSize);
   
   
}




g.setColor(c1);

for(int k= 1;k<=81;k=k+1){
g2d.fillRect((int)x2[k],(int)y2[k],(int)CellSize,(int)CellSize);


}

g.setColor(c4);

for(int k= 2;k<=81;k=k+2){
g2d.fillRect((int)x2[k],(int)y2[k],(int)CellSize,(int)CellSize);


}




g.setColor(c1);
for(int i=72;i<=81;i++){
    
   g2d.fillRect(734,120,(int)CellSize,9*(int)CellSize);
   
   
}
g.setColor(c1);
for(int i=72;i<=81;i++){
    
   g2d.fillRect(120,734,9*(int)CellSize,+(int)CellSize);
   
  
}

 g.setColor(c4);
 
   

 g.setColor(Color.RED);
for(int i=1;i<=9;i=i+1){

//g2d.fillOval((int)J.Xcu[i]+(int)(J.Delay), (int)J.Ycu[i]+(int)(J.Delay), (int)J.FigureSize,(int)J.FigureSize);

}
//йоднвая клетка
g.setColor(Color.BLACK);
for(int i=1;i<=81;i++){
    
   g2d.drawRect((int)x2[i],(int)y2[i],(int)CellSize,(int)CellSize);
   
   
}

//Rangering figures blue///////////////////////////////////////////////////////
 //Rangering figures blue///////////////////////////////////////////////////////
 g.setColor(c5);


 //System.out.println(aa+de+bb);
//if(f>9){g.setColor(c6);}

            //System.out.println("a b c d :"+ a+"_"+ b+"_"+ c+"_" +d  );
           //System.out.println(Arrays.asList(TS));
          
        // g2d.fillOval(c,d, (int)FigureSize,(int)FigureSize);
  

String s = x + ", " + y;
g.setColor(Color.BLUE);
g.drawString(s, 676, 667);


    
    
    
    
    repaint();

Thread.sleep(0);
  
   
           
  
 

 
  for (int i = 0; i < numOfRecs; i++) {
//if(i<4){
((Graphics2D) g).fill(rect[i]);
//}
  }
    
    }catch (InterruptedException ex) {ex.printStackTrace();}}
    

public int getRec(int x, int y) {
 
  for (int i = 0; i < numOfRecs; i++) {
 
if (rect[i].contains(x, y)) {
 
    return i;
 
}
 
  }
 
  return -1;
    }
 
    public void add(int x, int y) {
 
  if (numOfRecs < 18) {
   
        
 
rect[numOfRecs] = new Ellipse2D.Double(x, y, recW, recW);
 
currentSquareIndex = numOfRecs;
 
numOfRecs++;
 repaint();
  }
    }
 
    @Override
    public void remove(int n) {
 
  if (n < 0 || n >= numOfRecs) {
 
return;
 
  }
 
  numOfRecs--;
 
  rect[n] = rect[numOfRecs];
 
  if (currentSquareIndex == n) {
 
currentSquareIndex = -1;
 
  }
 
  repaint();
    }
 
    @Override
    public void mouseMoved(MouseEvent event) {
 
  int x = event.getX();
 
  int y = event.getY();
 
  if (getRec(x, y) >= 0) {
 
setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
 
  } else {
 
setCursor(Cursor.getDefaultCursor());
 
  }
    }
 
    @Override
    public void mouseDragged(MouseEvent event) {
 
  int x = event.getX();
 
  int y = event.getY();
 
  if (currentSquareIndex >= 0) {
 
Graphics graphics = getGraphics();
 
graphics.setXORMode(getBackground());
 
((Graphics2D) graphics).fill(rect[currentSquareIndex]);
 
rect[currentSquareIndex].x = x;
 
rect[currentSquareIndex].y = y;
 
((Graphics2D) graphics).fill(rect[currentSquareIndex]);
 
graphics.dispose();
 repaint();
  }
    }
   
    public void mouseReleased(MouseEvent event) {
 
  int x = event.getX();
 
  int y = event.getY();
 
  if (currentSquareIndex >= 0) {
 
Graphics graphics = getGraphics();
 
graphics.setXORMode(getBackground());
 
((Graphics2D) graphics).fill(rect[currentSquareIndex]);
 
rect[currentSquareIndex].x = 100;
 
rect[currentSquareIndex].y = 100;
 
((Graphics2D) graphics).fill(rect[currentSquareIndex]);
 
graphics.dispose();
 repaint();
  }
    }
    
    
 
    public static void main(String[] args) {
 G();
  JFrame jFrame = new JFrame();
 
  jFrame.setTitle("");
 
  jFrame.setSize(R1, R2);
 
  jFrame.addWindowListener(new WindowAdapter() {
 
      
      
      
@Override
 
public void windowClosing(WindowEvent e) {
 
    System.exit(0);
 
}
 
  });
 
  Container cPane = jFrame.getContentPane();
 
  cPane.add(new O8H12());
 
  jFrame.setVisible(true);
    }
}

!y=f(x)
 
 
Сообщения:37
Ура! Зацепил вирус Troyan.run в сетевых подключениях! Спасибо будьте бдительны! Я вирус!

!y=f(x)
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет