目前我正在用Java点击鼠标制作绘画程序。就像Photoshop或微软的绘画应用程序一样。 我知道通过设置X和Y轴的边界很容易绘制方形。但是如何用鼠标点击制作非洲地图国家的复杂形状的绘画方法呢?有没有办法为此设定界限? 任何人都可以给我提示吗?谢谢! map of Africa example
答案 0 :(得分:-2)
使用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);
}
}
这是我的测试结果。
注意:强>
在调用repaint()
面板时清除已绘制的数据。需要使用诸如将绘画点添加到Collection
之类的技术来保持绘画点的安全。