目前我正在用Java鼠标点击绘制Java程序。就像Photoshop或在微软绘画应用程序一样。 我知道通过设置X轴和Y轴的边界很容易绘制正方形。但是如何用鼠标点击制作像非洲地图那样的复杂形状的方法?有没有为此设置边界? 任何人都可以给我提示吗?谢谢! map of Africa example如何在Java中制作地图绘制软件
回答
绘画是可能的与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
之类的技术来保持绘画点的安全。
....并且请告诉我当你最小化然后恢复你的GUI时会发生什么?你的绘画是否持续?请不要给出误导性的建议,比如像上面那样使用'getGraphics()'。在Swing中绘图是被动的,应该在paintComponent方法中完成,就像下面详细解释的绘画教程一样:[Lesson:Performing Custom Painting](http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html)和[在AWT和Swing中绘画](http://www.oracle.com/technetwork/java/painting-140037.html) –
面板重新绘制。所以它会丢失已经绘制的所有数据。我只是试图向你展示如何使用java绘制鼠标。 –
是的,你展示了原来的海报**错误**的方式来做到这一点! –
- 1. 在java中绘制六角形地图
- 2. 如何在Android Activity中绘制地图?
- 3. 如何在地图中绘制路线?
- 4. 绘制地图在地图控制
- 5. ASP.Net:如何绘制地图
- 6. 在java中制作截屏软件
- 7. Java - 如何绘制图形
- 8. 在WPF中绘制地图
- 9. 如何在MATLAB中使用绘图()绘制二维地图
- 10. 如何在地图上绘制路线?
- 11. android如何在地图上绘制cricle
- 12. 如何在opengl中递归绘制十六进制地图?
- 13. 如何在控制台中绘制游戏地图?
- 14. 软件绘制流网络
- 15. 如何在地图上绘制曲线并在iPhone中绘制边框?
- 16. 绘制在谷歌,地图
- 17. 在ConduitM上绘制地图?
- 18. 绘制在谷歌地图
- 19. 在java上绘制图形
- 20. Java为游戏绘制地图网格
- 21. 如何在java中使用绘制线绘制楼梯线?
- 22. 如何在android中制作Google地图?
- 23. 如何在Java中制作3D图形?
- 24. 如何在Java中制作图片?
- 25. 如何动态绘制地图
- 26. 地图制作软件 - 地理信息系统
- 27. 如何在java中绘制三角形?
- 28. Java:如何在画布中绘制?
- 29. 如何在Java中绘制实心圆?
- 30. 如何在Java中绘制RGB色轮
这不是代码提供网站。如果你有一些确切的问题,我们将帮助你分享。请参观游览。 – Panther
找出你如何绘制一条线 – MadProgrammer