Panel
import java.awt.BorderLayout;
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.awt.event.MouseMotionListener;
import java.util.ArrayList;
import javax.swing.JPanel;
import javax.swing.JToolBar;
public class MyPanel extends JPanel implements MouseListener, MouseMotionListener{
private static final int WIDTH=500;
private static final int HEIGHT=400;
int x,y;
JToolBar kit;
ArrayList<Point> points=new ArrayList<Point>();
public MyPanel(){
kit=new JToolBar("Kit");
add(kit,BorderLayout.EAST);
kit.setPreferredSize(new Dimension(550,50));
kit.setFloatable(false);
setPreferredSize(new Dimension(WIDTH,HEIGHT));
addMouseListener(this);
addMouseMotionListener(this);
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
x=e.getX();
y=e.getY();
if (y>50){
points.add(new Point(x,y));
repaint();
}
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(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
}
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(Graphics2D g2d){
int x,y;
for (Point p:points){
x=(int)p.getX();
y=(int)p.getY();
g2d.fillRect(x, y, 10, 10);
}
}
}
Ramka
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFrame extends JFrame{
public MyFrame(){
super ("Paint");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel=new MyPanel();
add(panel);
pack();
setResizable(false);
setVisible(true);
}
}
Test
import java.awt.EventQueue;
public class Test {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new MyFrame();
}
});
}
}