繁体   English   中英

用鼠标点击绘制点 Java Swing

[英]Draw point on mouse click with Java Swing

我正在做一个项目,在这个项目中,我试图在 JPanel 中用 Java Swing 绘制鼠标点击点。

每次单击的点坐标都保存在 currentX 和 currentY 中,并使用这些坐标创建一个 Ellipse2D 列表,但它不起作用。

我解决了它并且有效:在解决方案下方:

package progetto;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author Anna
 */
public class MapDrawer extends JPanel{
    
    private List<Point> points = new ArrayList<>();
    
    public MapDrawer(){
        setBackground(new Color(23,99,8));
        addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e){
                points.add(new Point(e.getX(), e.getY()));
                repaint();
            }
        });
    }
    
    @Override
    public void paintComponent (Graphics g){
        super.paintComponent(g);
        Graphics g2 = (Graphics2D) g;
        g2.setColor(Color.gray);
        for (Point p : points){
            g2.fillOval(p.x, p.y, 5, 5);
        }
    }
    
    public static void main(String [] args){
        EventQueue.invokeLater(new Runnable(){
            @Override
            public void run(){
                JFrame frame = new JFrame();
                frame.add(new MapDrawer());
                frame.setSize(400,400);
                frame.setVisible(true);
            }
        });
    }
    
    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM