sách gpt4 ai đã đi

java - 如何等到 JComponent 完全绘制完成?

In lại 作者:塔克拉玛干 更新时间:2023-11-01 22:58:43 hai mươi bốn 4
mua khóa gpt4 Nike

我需要一种方法来等待(Swing)JComponent 被完全绘制。这个实际问题来自一个 openmap 应用程序:任务是绘制一个具有几个图层的 map (mapBean) 并从该 map 创建一个图像。

不幸的是,它被清楚地记录在案,图像格式化程序从 map 中获取当前状态来创建图片,并且有可能,尤其是本地图变得复杂时,格式化程序会在绘制 mapBean(一个 JComponent)之前被调用.

虽然用这个 openmap 应用程序进行了解释,但这个问题非常普遍,而且据说与 Swing 相关。现在,我只是等待一段固定的时间(一秒钟),但这并不能消除创建不完整 map 的风险......

biên tập

更多细节 - 我必须从构建 (OpenMap) MapPanel 开始,它会在内部创建一个 MapBean(JComponent 子类)和一个 MapHandler。然后我为 MapHandler 提供地理层,框架开始在 JComponent 类型 MapBean 上绘制地理数据。

将所有图层添加到 map 后,我使用另一个框架类来创建 JPG 图像(或:保存图像数据的 byte[])。如果我不等待,cái này 可能会导致问题:这个“图像创建者”根据 map bean 的当前状态创建图像,如果我提前调用这个“图像创建者”,一些 map 图层未绘制和丢失。很烦人...

1 Câu trả lời

java.awt.EventQueue.invokeLater 将允许您在绘制操作完成后运行任务。如果它正在进行某种异步加载,那么它将是特定于 API 的(如 MediaTracker Phải Image 所做的那样)。

关于java - 如何等到 JComponent 完全绘制完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1342932/

hai mươi bốn 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com