java - 调整大小后如何保持图像不变?

标签 java image swing resize

我是 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 方法中进行绘制。

For example

关于java - 调整大小后如何保持图像不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781230/

相关文章:

java - 图像裁剪,使用 Java 去除图像中不需要的白色部分

c# - 重绘图像 WPF

java - Jframe 在 @Test JUnit 中消失

java - JPanel 的 FlowLayout() 未在流程布局中显示 JLabels

image - Magento - 以编程方式复制产品/设置默认图像?

java - 如何从一个jpanel到另一个jpanel画一条线

java - Spring 配置问题 - 无法加载应用程序类

java - 复制目录中的文件并更改文件名

java - 在 NetBeans 上运行用 Java 编写的客户端-服务器程序

java - map.containsKey(key) 返回 true,但 map.get(key) 不返回任何内容