Java 挥杆作曲示范

Java 挥杆作曲示范,java,swing,composition,Java,Swing,Composition,我目前正在攻读Java编程课程以获得学位,虽然我已经对基本编程概念有点熟悉,但在本课程之前我从未专门使用过Java。为了成为一名更好的程序员,我独立地研究了每项作业和每一章所涵盖的主题,并且在书中多次发现了一些违反公认标准的做法(使用double表示货币等)并最终从第三方信息中学到了更多,以便尝试编写更好的代码 本章介绍了Swing和GUI的创建,但它非常明确地建议使用继承来扩展Swing类,而完全没有提到使用组合,最基本的搜索(在StackOverflow和其他地方)似乎建议使用更有效的解决方

我目前正在攻读Java编程课程以获得学位,虽然我已经对基本编程概念有点熟悉,但在本课程之前我从未专门使用过Java。为了成为一名更好的程序员,我独立地研究了每项作业和每一章所涵盖的主题,并且在书中多次发现了一些违反公认标准的做法(使用double表示货币等)并最终从第三方信息中学到了更多,以便尝试编写更好的代码

本章介绍了Swing和GUI的创建,但它非常明确地建议使用继承来扩展Swing类,而完全没有提到使用组合,最基本的搜索(在StackOverflow和其他地方)似乎建议使用更有效的解决方案。因此,本章中的示例都没有涉及使用组合来创建和实现Swing GUI


有谁能告诉我一些建议的在线资源,这些资源提供了正确编写的使用composition实现的Swing GUI的入门级示例/演示?

仅对OP的问题进行评论,而不是回答,以及基于她/他的书的知识

最简单的例子是使用JPanel和JButton创建JFrame


构图

为每个JComponents创建一个带有局部变量的类

三个类,返回JFrame、JPanel、JButton


继承权

三节课

一类扩展JFrame

第二类扩展JPanel

第三类扩展按钮

另一个动物园



现在的问题是如何更改为组合和继承这两种方式创建的对象的背景

即使您为Swing类创建子类,也不能在没有组合的情况下使用Swing。典型的GUI是通过将组件添加到面板、将面板添加到框架等来创建的。这就是组合。请参见组合与继承,组合是关于返回,继承是关于扩展,尝试避免任何扩展Xxx输入Xxx要澄清,这本书特别建议在创建GUI对象时扩展Swing类,而不是创建包含一个GUI对象的新对象,因此提供的演示和示例都是“Is-a”而不是“Has-a”。我正在寻找使用“Has-a”关系实现的Swing GUI的编写良好的简单示例。因此,例如,本书如何向面板添加按钮?我不明白不使用组合是如何做到这一点的。假设这本书使用“公共类WindowType扩展JFrame”创建了一个GUI对象,定义了组件(面板、标签等),在构造函数中设置了信息(setTitle()、setSize()),并拥有使用这些组件构建面板的方法。现在假设我想通过“public class WindowType”创建同一个窗口,并在这个类中创建一个新的私有JFrame对象,而不是扩展JFrame类。我最终得到的(并在寻找示例)是,是否会因为此更改而对结果类的结构进行任何重大更改。是的,但JFrame不可访问,确实有。setXxx,但对于非常简单的GUI,否则这可能会被忽略,请也为JFrame创建一个局部变量