Java “多重”;屏幕“;

Java “多重”;屏幕“;,java,swing,awt,custom-component,Java,Swing,Awt,Custom Component,我一直在做一个游戏,不太喜欢,我想知道制作菜单屏幕的最好方法是什么。我目前使用的是一个单一的代码> JPATA/作为基础。 “绘画。”我想知道实现菜单屏幕等的最佳方式是什么 到目前为止我的想法是: a) 让当前的JPanel注意菜单屏幕 b) 为它们制作新的JPanels并将它们交换到下一个;例如:如果我点击“新建游戏”选项,然后切换到保存游戏设置的新JPanel 额外问题: 考虑到小程序和应用程序的可玩性,我们使用Canvas或其他组件优于JPanel 谢谢 建议: 如果这是一个Swing应

我一直在做一个游戏,不太喜欢,我想知道制作菜单屏幕的最好方法是什么。我目前使用的是一个单一的代码> JPATA/<代码>作为基础。 “绘画。”我想知道实现菜单屏幕等的最佳方式是什么

到目前为止我的想法是:

a) 让当前的
JPanel
注意菜单屏幕

b) 为它们制作新的
JPanel
s并将它们交换到下一个;例如:如果我点击“新建游戏”选项,然后切换到保存游戏设置的新
JPanel

额外问题:

考虑到小程序和应用程序的可玩性,我们使用
Canvas
或其他组件优于
JPanel

谢谢

建议:

  • 如果这是一个Swing应用程序,那么一定要使用Swing组件,比如JPanels
  • 您的用户可能会更喜欢您的交换JPanel,如果您决定走这条路线,将使它很容易做到
  • 如果JPanel中显示的视图存在显著差异,则可能需要交换它们。如果只是更改文本的问题,那么您可以通过更改多个jlabel的文本来代替交换
建议:

  • 如果这是一个Swing应用程序,那么一定要使用Swing组件,比如JPanels
  • 您的用户可能会更喜欢您的交换JPanel,如果您决定走这条路线,将使它很容易做到
  • 如果JPanel中显示的视图存在显著差异,则可能需要交换它们。如果只是更改文本的问题,那么您可以通过更改多个jlabel的文本来代替交换

根据您的问题,我猜您的游戏视图完全是用
图形
绘制的
paintComponent()
,并且您的主
JPanel
中没有任何其他组件。在这种情况下,只切换调用的图形代码,而不是将其他图形代码放在完全不同的面板类中,可能会更干净

编辑:


只是想澄清一下:您希望交换
JPanel
s的主要原因是,如果原始JPanel上安装了许多组件、侦听器等,那么您需要将其交换,以便将其切换到显示菜单。如果菜单屏幕可以绘制为相同的
图形
并由相同的
鼠标侦听器运行
,我将只使用一个面板。

从您的问题中,我猜您的游戏视图完全是由
图形
内部
paintComponent()
绘制的,您的主
JPanel
中没有任何其他组件。在这种情况下,只切换调用的图形代码,而不是将其他图形代码放在完全不同的面板类中,可能会更干净

编辑:

只是想澄清一下:您希望交换
JPanel
s的主要原因是,如果原始JPanel上安装了许多组件、侦听器等,那么您需要将其交换,以便将其切换到显示菜单。如果可以将菜单屏幕绘制为相同的
图形
,并由相同的
鼠标侦听器运行
,我将只使用一个面板

考虑到小程序和应用程序的可玩性,我们使用
Canvas
或其他组件优于
JPanel

除非项目的其余部分使用AWT,否则不要使用
画布。如果它是Swing,并且组件只包含自定义绘制,请使用
JComponent
。如果Swing和该区域内布置了组件,请使用
JPanel

为什么要区分小程序和应用程序?您是否考虑过在applet中使用AWT

考虑到小程序和应用程序的可玩性,我们使用
Canvas
或其他组件优于
JPanel

除非项目的其余部分使用AWT,否则不要使用
画布。如果它是Swing,并且组件只包含自定义绘制,请使用
JComponent
。如果Swing和该区域内布置了组件,请使用
JPanel


为什么要区分小程序和应用程序?您是否考虑在小程序中使用AWT?

看起来他有游戏的绘图屏幕,然后想切换到菜单屏幕。@HovercraftFullOfEels就是这样。看起来他有游戏的绘图屏幕,然后想切换到菜单屏幕。@HovercraftFullOfEels就是这样。+1个好建议;实现图示的
图标是定制现有
组件图形的另一种便捷方式。
+1好建议;实现
图标
,如图所示,是定制现有
JC组件图形的另一种便捷方式。
我之所以做出这样的区分,只是为了说明我希望能够在小程序和窗口应用程序上运行它。我通常使用JApplet。我之所以这样做,只是为了说明我希望能够在Applet和窗口应用程序上运行它。我通常用日本式的。