Java 在一个jframe中的两个JPanel中使用两种绘制方法
我最近在尝试为我的框架创建覆盖时遇到了一个问题。框架由两个面板组成,一个Java 在一个jframe中的两个JPanel中使用两种绘制方法,java,swing,jpanel,paint,paintcomponent,Java,Swing,Jpanel,Paint,Paintcomponent,我最近在尝试为我的框架创建覆盖时遇到了一个问题。框架由两个面板组成,一个GamePanel和一个overlypanel,每个面板都有自己的绘制方法。为了保持代码的整洁和效率,我将它们分开。不过,我现在遇到的问题是,我的paintComponent方法彼此重叠,导致一次只能看到一个绘制的面板 我知道这很可能是因为两个面板都覆盖了整个屏幕。然而,在覆盖面板上绘制的内容仅覆盖屏幕的一部分 目标是GamePanel将绘制某种类型的地图,然后overlypanel将在此地图顶部的给定位置绘制一个矩形 我的
GamePanel
和一个overlypanel
,每个面板都有自己的绘制方法。为了保持代码的整洁和效率,我将它们分开。不过,我现在遇到的问题是,我的paintComponent
方法彼此重叠,导致一次只能看到一个绘制的面板
我知道这很可能是因为两个面板都覆盖了整个屏幕。然而,在覆盖面板上绘制的内容仅覆盖屏幕的一部分
目标是GamePanel
将绘制某种类型的地图,然后overlypanel
将在此地图顶部的给定位置绘制一个矩形
我的方法是错误的,还是我遗漏了什么
我的方法是错误的吗
对。可以将绘图操作分离到单独类中的单独方法中,但仍然可以使用单个方法完成整个绘制操作
假设有一个Map
类和一个draw(Graphics2D)
方法,还有一个RectangularPlayer
类和一个draw(Graphics2D)
方法。每个类都知道如何将自己的部分绘制到公共图形实例。在GameField
类的paintComponent(Graphics)
方法中,调用地图和玩家类的相关绘制方法,以及需要渲染的任何其他游戏元素