Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:创建GUI。导入或扩展JFrame?_Java_Inheritance_Import_Jframe_Extend - Fatal编程技术网

Java:创建GUI。导入或扩展JFrame?

Java:创建GUI。导入或扩展JFrame?,java,inheritance,import,jframe,extend,Java,Inheritance,Import,Jframe,Extend,我自己做了一个GUI,它扩展了JFrame。我看到一个高级程序员的程序代码,他导入了JFrame。我可能知道导入和扩展之间的区别。但是哪种类型的实现有什么好处呢?通过“导入”,我想您的意思是,您的程序员朋友的类使用了一个JFrame,而您的类是一个JFrame。我不认为扩展JFrame是“错误的”,但我更喜欢的方法是创建和配置JFrame,而不是扩展它。如果确实有一些受保护的方法需要访问,那么您可以对其进行扩展,但我确信,在大多数情况下,简单地创建和配置一个标准JFrame是正确的—我从未发现需

我自己做了一个GUI,它扩展了JFrame。我看到一个高级程序员的程序代码,他导入了JFrame。我可能知道导入和扩展之间的区别。但是哪种类型的实现有什么好处呢?

通过“导入”,我想您的意思是,您的程序员朋友的类使用了一个JFrame,而您的类是一个JFrame。我不认为扩展JFrame是“错误的”,但我更喜欢的方法是创建和配置JFrame,而不是扩展它。如果确实有一些受保护的方法需要访问,那么您可以对其进行扩展,但我确信,在大多数情况下,简单地创建和配置一个标准JFrame是正确的—我从未发现需要扩展它


换句话说,通过继承JFrame而不需要这样做,只会使系统复杂化。这与选择继承而不是与任何其他类聚合时的参数相同。为了找出正确的方法,您需要问问自己,您正在编写的类是否真的是一个窗口小部件JFrame。我怀疑在大多数情况下,您编写的Swing应用程序需要JFrame,但它本身不是JFrame——它是一个具有其他用途的Swing应用程序。

一般来说,您不应该扩展JFrame。在网上搜索“组合与继承”来讨论这个话题。你是说谁使用JFrame作为成员。无论您想如何使用JFrame,都必须导入它。