【问题标题】:Using two paint methods in two jpanels in one jframe在一个 jframe 中的两个 jpanels 中使用两种绘制方法
【发布时间】:2017-01-18 18:14:30
【问题描述】:

我最近在尝试为我的框架创建叠加层时偶然发现了一个问题。该框架由两个面板组成,一个GamePanel 和一个OverlayPanel,每个面板都有自己的paint 方法。我将它们分开是为了保持我的代码更干净和效率。不过,我现在遇到的问题是我的 paintComponent 方法相互重叠,导致一次只能看到一个绘制的面板。

我了解这很可能是因为两个面板都覆盖了整个屏幕。但是,OverlayPanel 上正在绘制的内容仅覆盖了屏幕的一部分。

目标是GamePanel 将绘制某种地图,然后OverlayPanel 将在该地图顶部的给定位置绘制诸如矩形之类的东西。

我的处理方法是错误的,还是我遗漏了什么?

【问题讨论】:

    标签: java swing jpanel paint paintcomponent


    【解决方案1】:

    我的处理方法是不是错了,..

    是的。可以将绘图操作分成单独的类中的单独方法,但仍然可以通过单个方法完成整个绘制操作。

    想象有一个Map 类带有draw(Graphics2D) 方法,而RectangularPlayer 类也带有draw(Graphics2D) 方法。每个类都知道如何将自己的部分绘制到公共图形实例中。在GameField类的paintComponent(Graphics)方法中,调用地图类和玩家类的相关绘制方法,以及其他需要渲染的游戏元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多