用Java秋千在鼠标上绘制点

发布于 2025-01-25 10:08:14 字数 107 浏览 2 评论 0原文

我正在研究一个项目,我正在尝试在带有Java Swing的Jpanel内单击鼠标。

我每次在CurrentX和Castry中保存单击点坐标时,并与这些坐标创建椭圆2D列表,但它不起作用。

I'm working on a project in which I am trying to draw point on mouse click within a JPanel with Java Swing.

I save each time the clicked points coordinate in currentX and currentY and create an Ellipse2D List with those coordinates but it doesn't work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

日暮斜阳 2025-02-01 10:08:14

我解决了它,它有效!在解决方案下方:

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);
            }
        });
    }
    
    
}

I solved it and it works! Below the solution:

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);
            }
        });
    }
    
    
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文