我是 Java 新手,我正在尝试弄清楚如何确保在调整窗口大小后我的图像保留在屏幕上。我在发布之前尝试寻找答案,但似乎找不到我要找的东西。
最好的方法是什么以及我应该如何做?
这是我认为“重要”的代码:
public void mouseDragged(MouseEvent DrawingEvent) {
Graphics g = getGraphics();
g.drawLine(DrawPoint.x, DrawPoint.y, DrawingEvent.getX(), DrawingEvent.getY());
DrawPoint = new Point(DrawingEvent.getX(), DrawingEvent.getY());
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
}
}
最佳答案
要保留图像:
- 不要使用通过在 Swing 组件上调用
getGraphics()
获得的 Graphics 对象。这些对象是短暂的,并且有导致图像消失或 NullPointerExceptions 的风险。 - 而是使用 JVM 为 JPanel 的 PaintComponent 方法提供的 Graphics 对象进行绘制,就像 Swing drawing tutorials 一样。告诉你。
- 您可以在 BufferedImage 上绘图,然后在 JPanel 的 PaintComponent 方法中显示该图像 - 这可能是实现您想要做的事情的最简单方法。
- 或者您可以创建一个非 GUI 逻辑对象(例如 Points 或 Line2D)的 ArrayList,然后使用这些集合来指导如何在 JPanel 的 PaintComponent 方法中进行绘制。
关于java - 调整大小后如何保持图像不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781230/