有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何用Java制作地图绘制软件

目前我正在用Java制作鼠标点击的绘画程序。就像微软的Photoshop或绘画应用程序一样。 我知道,通过设置X轴和Y轴的边界,画正方形很容易。但我怎样才能用鼠标点击画出像非洲地图上的国家那样复杂的形状呢?有没有办法设定界限? 谁能给我个提示吗?非常感谢。 map of Africa example


共 (1) 个答案

  1. # 1 楼答案

    使用java Graphics可以进行绘制。尝试下面的简单代码

    public class PaintCanves extends JPanel {
    
        private int oldX;
        private int oldY;
    
        public PaintCanves() {
            draw();
        }
    
        private void draw() {
            addMouseListener(new MouseAdapter() {
                @Override
                public void mousePressed(MouseEvent e) {
                    oldX = e.getX();
                    oldY = e.getY();
                }
            });
    
            addMouseMotionListener(new MouseMotionAdapter() {
                @Override
                public void mouseDragged(MouseEvent e) {
                    getGraphics().drawLine(oldX, oldY, e.getX(), e.getY());
                    oldX = e.getX();
                    oldY = e.getY();
    
                }
            });
        }
    
        public static void main(String[] args) {
            JFrame frame = new JFrame();
            frame.setContentPane(new PaintCanves());
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(500, 500);
            frame.setVisible(true);
        }
    }
    

    这是我的测试结果

    enter image description here

    注意:

    当调用repaint()面板时,它会清除已经绘制的数据。需要使用一种技术来确保绘制点的安全,比如将绘制点添加到Collection或其他东西中