gpt4 book ai didi

java - 有关在类中扩展 JFrame 的问题吗?

转载 作者:行者123 更新时间:2023-12-02 08:35:32 25 4
gpt4 key购买 nike

好吧,我不是 Java 菜鸟,只是碰巧我在学习 MySQL、Servlet、Java EE、JDBC 等更多有趣的东西时忘记了一点关于 Java 核心的知识;所以不要把你的答案当作我是一个初学者。现在的问题是......

我正在编写一个扩展 JFrame 的类(比如说 ThisIsAJFrameExtendingClass ),为了尽量减少与我的整个项目的混淆,我还想在 ThisIsAJFrameExtendingClass 中放置一些其他实用方法。 。我打算这个类( ThisIsAJFrameExtendingClass )从用户那里寻求某些输入,然后;自杀(即dispose())。所以,我的问题是,如何独立使用类中的实用方法,而不在用户屏幕上弹出任何 JFrame。

我想要一个在 ThisIsAJFrameExtendingClass 内多个构造函数帮助下的解决方案类,其中调用无参数构造函数返回 JFrame,第二个带有 boolean 参数的构造函数可以访问实用程序方法。

[更新]

哦....我只是想到,实用程序方法的返回类型是ArrayList,所以假设实用程序方法被称为utilMethod()然后:

ArrayList<String> pring = new ThisIsAJFrameExtendingClass().utilMethod();

上面的代码会输出任何JFrame吗?

最佳答案

您可以创建实用方法 static ,在这种情况下可以使用 ThisIsAJFrameExtendingClass.<method name> 调用它们无需创建实例。

关于构造函数的东西对我来说并没有什么意义。类的构造函数始终返回该类的实例。由于您传入的参数,它无法返回“其他内容”。

[编辑以回复问题的更新]:

new ThisIsAJFrameExtendingClass()将创建类的实例,运行其构造函数(以及所有父类(super class)的默认构造函数)。这可能会分配继承树中的每个构造函数所需的其他资源(例如其他 Swing 组件或其他资源)。所以一个JFrame已创建,但如果您仅调用 utilMethod()并且永远不要保留对框架的引用,它将被垃圾收集并在将来的某个时刻释放其资源。

创建 JFrame 实例来调用其上的单个实用程序方法并不是一种特别有效的方法,但它不会导致任何问题。 (正如 Chad 所说,默认情况下 JFrame 是不可见的,因此如果您在“util”模式下使用它,用户将看不到任何内容)。

关于返回ArrayList作为使用集合时的一般规则,您应该返回有意义的最高级别接口(interface),而不是具体的类。因此在这种情况下,请考虑返回 List<String>甚至 Collection<String> .

关于java - 有关在类中扩展 JFrame 的问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1935711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com