Witam chciałem przerobić następujący program
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.JPanel;
public class MyPanel extends JPanel implements MouseListener{
private static final int WIDTH=500;
private static final int HEIGHT=400;
private int x,y;
ArrayList<Point> points= new ArrayList<Point>();
public MyPanel (){
addMouseListener (this);
setPreferredSize (new Dimension (WIDTH,HEIGHT));
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
x=e.getX();
y=e.getY();
points.add(new Point(x,y));
repaint();
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
protected void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
g2d.setColor(Color.BLACK);
drawRectangles(g2d);
}
private void drawRectangles(Graphics g2d){
int x,y;
for (Point p:points){
x=(int)p.getX();
y=(int)p.getY();
g2d.fillRect(x, y, 10, 10);
}
}
}
i ramka
import java.awt.EventQueue;
import javax.swing.JFrame;
public class Frame extends JFrame {
public Frame() {
super("MouseTest");
add(new MyPanel());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
setResizable(false);
setLocation(700,300);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Frame();
}
});
}
}
na taki który po wciśnięciu przycisku i przesuwaniu następnie puszczeniu rysowałby w miejscu w którym był kursor kwadraciki próbowałem przenieść z mousePressed kod do mouseMoved ale nic się nie dzieje :/ gdyby ktoś mógłby mnie naprowadzić to byłbym wdzięczny :)