Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing组件图形_Java_Swing_Graphics - Fatal编程技术网

Java Swing组件图形

Java Swing组件图形,java,swing,graphics,Java,Swing,Graphics,我正在创建一个java 2D游戏,现在我正在考虑创建“弹出式图形”,即当某个事件发生时填充屏幕的图形。比如说,你拿起一个特定的项目,我希望这个项目显示在屏幕的中间,包含一个关于这个项目的信息。 目前,我有一个大的paintComponent,它可以绘制游戏的所有图形(瓷砖、实体、玩家等(我可能会添加这些图形)。我知道我可能有一个布尔值来检查一个项目是否在该方法中被拾取,但它感觉不对 我想知道的是,有没有一种方法可以让项目拥有自己的paintComponent,这样当调用它时,它会在短时间内显示(

我正在创建一个java 2D游戏,现在我正在考虑创建“弹出式图形”,即当某个事件发生时填充屏幕的图形。比如说,你拿起一个特定的项目,我希望这个项目显示在屏幕的中间,包含一个关于这个项目的信息。

目前,我有一个大的paintComponent,它可以绘制游戏的所有图形(瓷砖、实体、玩家等(我可能会添加这些图形)。我知道我可能有一个布尔值来检查一个项目是否在该方法中被拾取,但它感觉不对

我想知道的是,有没有一种方法可以让项目拥有自己的paintComponent,这样当调用它时,它会在短时间内显示(比如说)一个bo,而在我目前用于所有操作的big paintComponent方法中没有布尔值

小代码示例(不会执行)

然后在某个事件的某个地方,我实例化了这个或类似的东西。 我不希望它覆盖其他paintcomponent,我只想添加到它 (好像它是另一层)到paintComponent

简而言之,我想知道:
1.可以显示简短的图形,而不包括在巨大的paintComponent方法中
2.应该扩展哪个Swing库(JComponent、JPanel等)


提前谢谢

实际上,检查项目是否已拾取的布尔值正是您应该执行的操作。绘制方法应该使用对象状态来决定绘制什么。那么这就是常规方法吗?很公平。我的意思是,这就是我到目前为止一直在做的事情,只是觉得有一种不同的“更好”的方式。谢谢
public class popUpGraphics extends (JComponent or JPanel or whatever works best for this scenario)
{
    public popUpGraphics(){
    }

    @Override
    protected void paintComponent(Graphics g){
       //g.Draw(stuff);
    }
}