Java 在Swing中创建新类而不创建新窗口

Java 在Swing中创建新类而不创建新窗口,java,swing,Java,Swing,我正在制作一个使用Swing的游戏,但问题是,在代码中,我必须创建几个类并在其中调用一个方法。因为这些方法位于使用swing的类的子类中,所以当我创建它时,它会为同一swing组件创建一个新窗口,并开始在那里执行所有操作。有没有一种方法可以在没有多个swing窗口的情况下实现我想要的功能 这里是我创建子类并调用它们的方法的地方 new Chapter1(player).engage(); new Chapter2(player).engage(); 我已经试过了 Ch

我正在制作一个使用Swing的游戏,但问题是,在代码中,我必须创建几个类并在其中调用一个方法。因为这些方法位于使用swing的类的子类中,所以当我创建它时,它会为同一swing组件创建一个新窗口,并开始在那里执行所有操作。有没有一种方法可以在没有多个swing窗口的情况下实现我想要的功能

这里是我创建子类并调用它们的方法的地方

    new Chapter1(player).engage();

    new Chapter2(player).engage();
我已经试过了

    Chapter1().engage(player);

    Chapter2().engage(player);
但这要求engage()方法是静态的,这会在我的整个程序中导致错误。因为很多方法都需要继承,并且不是静态的。有没有办法解决这个问题,或者我必须处理多个窗口

编辑:


关于windows的更多信息。我在swing中为自己创建了一个控制台,并在其中打印了大量信息。engage方法只是打印更多的东西,但我希望它们在同一个窗口中,而不是在自己的窗口中打印

您应该练习MVC设计。这意味着您应该将GUI与显示的任何数据存储或数据操作分离。换句话说,您应该创建一个框架。框架可以使用不同的章节来显示数据。这听起来像你有一个UI本身的章节,这是你应该避免的事情,特别是如果你将继承他们没有任何UI的变化


请参阅:

您说过所讨论的类扩展了一个扩展swing组件的类。你需要这个吗?您可以创建一个单独的类,而无需子类化任何swing组件。您的问题无法回答,而且您的术语是错误的。你没有实现swing。你在用秋千。方法不能是子类。不能创建方法,只能调用它。发布一个简单但完整的例子来重现这个问题,告诉我们预期的结果是什么,预期的结果是什么。@takendark我需要能够打印到swing组件。如果我没有swing的子类,这仍然可能吗?@JBNizet My bad,我会修正我的术语来澄清一些问题。我没有先预览我的文章,你可以有一个类,它是一个swing组件,只显示数据。然后是第二个类,它不是处理发送到第一个类的数据的swing组件。这基本上是试图从显示代码中分离逻辑代码。好的,我会研究它并尝试一下,看看它是否有效,谢谢!