java 清空绘画_在Java中调整大小时绘画内容不可见

请注意,我尚未在Windows计算机上仅在Mac计算机上对此进行测试。 我不确定这是否也会在Windows计算机上发生…

当我调整Java应用程序的大小时,内容是不可见的。我已经找到一种方法来解决它 后 调整其大小,但不能 同时 在用户调整窗口的大小。

我没有使用Swing之类的东西,因为它会使我的二进制文件变慢(我认为)。

结构是这样的:

Frame 我的主窗口

Containe r的内容视图 main-window

Container 基于子视图,包括paint(Graphics g)-方法

我已将所有侦听器添加到其中 My main-window ,现在可以 在*调整窗口大小 后 重新绘制 Content-view

。*

public void componentResized(ComponentEvent e) {

this.contentView.paint(this.contentView.getGraphics());

}

我谨防使用paint(getGraphics())-method并不是执行此操作的好方法,但是由于repaint()-method根本不执行任何操作,因此这是唯一可行的方法。

调整大小时,所有绘制的内容将变得不可见。但是,当我Button向自己添加-instance Content-view 并调整其大小时

Main-window ,按钮不会变得不可见。

我 是 能够追踪“live’-resize事件:

public void componentMoved(ComponentEvent e) {

System.out.println("Live-resize");

}

当我开始调整大小时,不会调用此方法。

调整大小时,我在日志中每调整像素大小都会生成“实时调整大小”。

当我停止调整大小时,不调用此方法,componentResize-method会调用。

当我将这样的重绘方法(或正式的重绘方法)添加到像这样的“实时”调整大小事件中时,我仍然会得到输出,但是,它没有进行重绘

public void componentMoved(ComponentEvent e) {

System.out.println("Live-resize");

this.contentView.paint(this.contentView.getGraphics());

}

要么

public void componentMoved(ComponentEvent e) {

System.out.println("Live-resize");

this.contentView.repaint();

}

当我将我的应用程序最小化到扩展坞并再次最大化应用程序时,会发生相同的事情,我猜想需要使用相同的代码来解决此问题。

我没有使用Graphics2D,什么也没有Graphics。

您能否解释一下如何重绘视图?

预先感谢,蒂姆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值