将JPanel作为参数传递给其他类是正确的吗?

时间:2013-10-30 18:29:51

标签: java multithreading swing jpanel

我确定不是,但我正在考虑其他方法。我有一个带有背景和字符线程的视频游戏面板。角色在100毫秒的基础上不断改变他的位置,我想在屏幕上显示他所做的每一步。我可以很容易地将gamePanel传递给角色作为参数,但是当我这样做时我内心感到很脏,因为我知道这是错误的方式。 有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

将JPanel作为参数传递给方法本身并没有什么不对,因为它是一个像任何其他对象一样的对象,但我确实担心你是如何使用它来绘制JPanel的。你没打电话getGraphics()是吗?我希望不会。


修改
你陈述/我回复:

  

事实是我正在尝试不同的解决方案,现在我没有使用JPanel作为参考的代码版本。

那么这不是问题吗?

  

无论如何,在那个版本中一切都很好。我只是担心,因为在一个有更多线程的假设情况下,对我来说拥有一个共享的JPanel对我来说听起来不那么安全。因此主要问题。

只要您注意在Swing事件线程上进行任何和所有Swing调用,并在后台线程上调用所有长时间运行的代码,线程几乎不会成为问题。虽然将JPanel作为参数传递,但我没有看到这与您的原始问题有什么关系。

如果你还有一个问题,你会想进一步澄清它,因为你还在谈论我们无法访问的模糊的mumbo-jumbo。

答案 1 :(得分:1)

JPanel只是一个类。您可以将任何类的对象作为参数传递给该方法。如果要将其传递给另一个类中的方法,则必须小心访问另一个类。但只是传递JPanel的对象是完全没法的