необходимо, что бы при движении мыши прямая линия тянулась за курсором
| Код | import java.awt.*; import java.awt.event.*; import java.util.*; import java.awt.geom.*; import javax.swing.*; public class Draw_Line { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { MouseFrame frame = new MouseFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } } class MouseFrame extends JFrame { public static final int DEFAULT_WIDTH = 500; public static final int DFAULT_HEIGHT = 500; public MouseFrame() { setTitle("MouseTest"); setSize(DEFAULT_WIDTH, DFAULT_HEIGHT); MouseComponent component = new MouseComponent(); add(component); } } class MouseComponent extends JComponent { int yLast,xLast=250; int click=1; Dimension size = new Dimension(getSize(getMaximumSize())); int first = (int)size.getHeight()/2; public MouseComponent() { addMouseListener(new MouseHandler()); addMouseMotionListener(new MouseMotionHandler()); } private class MouseHandler extends MouseAdapter { public void mousePressed(MouseEvent e) { Graphics g = getGraphics(); Graphics2D g2 = (Graphics2D)g; int x = e.getX(), y = e.getY(); g2.drawLine(xLast,yLast,x,y); xLast = x; yLast = y; } } private class MouseMotionHandler implements MouseMotionListener { public void mouseMoved(MouseEvent event) { } public void mouseDragged(MouseEvent event) { Graphics g = getGraphics(); Graphics2D g3 = (Graphics2D)g; int x = event.getX(), y = event.getY(); g3.drawLine(xLast,yLast,x,y); xLast = x; yLast = y; } } }
|
|