当我将程序设置为全屏时,为什么JPanel无法正确呈现?

当我将程序设置为全屏时,为什么JPanel无法正确呈现?,第1张

当我将程序设置为全屏时,为什么JPanel无法正确呈现?

问题是您正在创建多个不同的实例

Screen
但您完全不知道屏幕上实际可见哪个实例。

Kingdomcraft#main
,创建实例
Screen
和调用
screen.run()
,它创建的实例
Kindomcraft
MainMenu
以及
Screen
......别急,我们
Screen
,为什么我们需要另一个实例?然后,您继续向的
this
实例添加内容
Screen
,而将实例保留为
screen
空白…

真正奇怪的是,您要将的实例传递

screen
ifFullscreen
(这是空白版本),然后将其尝试使其全屏显示…上面没有任何内容…但
ifNotFullscreen
实际上使用了
this
???

甚至更奇怪…当您

MainMenu#run
从调用时
Screen#run
,您创建的新实例
Kingdomcraft
MainMenu
然后
Screen
…再次…

fullscreen
按钮被付诸行动,你传递给它的引用
screen
您创建的
MainMenu
,这是不是有它的内容,哪些应该在屏幕上显示一个…

基本上,您似乎不了解做什么

new
以及对象实例之间的区别。一个新实例与同一对象的任何其他实例都没有关系…

你应该做的是路过的参考

Kingdomcraft
Screen
,然后传递的参考
Screen
MainMenu
。这些类都不应该创建自己的实例或实例
Kingdomcraft
Screen

链中的每个链接都应该能够提供对前一个链接的访问,因此

MainMenu
应该能够请求对它
Screen
的引用
Kingdomcraft

另外,Swing也不是线程安全的。除了事件调度线程以外,您永远不应与任何线程中的任何组件进行交互。

有关更多详细信息,请参见Swing中的并发。

从事物的外观来看,我认为您需要回到基础知识,并研究对象引用的工作原理…



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5010871.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存