1

我正在尝试用 Java 编写幻灯片程序,并希望使实现尽可能简单。

目标是显示一系列幻灯片,除了依赖于幻灯片内容的其他按钮之外,每个幻灯片都有导航按钮。(显示文本的幻灯片会有一个magnifyTextButton,而带有图像的幻灯片没有这个按钮。)

我在想一个抽象Slide类是合适的,每个幻灯片类型都有子类:TextSlideImageSlide. 我将如何实现这些子类,以便它们magnifyTextButton出现在TextSlides 中,而不是在任何其他幻灯片中?

此外,我的Slide课程扩展了JFrame. Slide如果节目被设计为在单个窗口中进行,例如在 PowerPoint 中,子类的每个实例是否都需要构造一个 JFrame 对象?

4

3 回答 3

3

我将如何实现这些子类,以便 magnifyTextButton 将显示在 TextSlides 中,而不是在任何其他幻灯片中?

你可以拿一个标志来决定是否显示放大按钮。该标志在 TextSlides 中为真,在其他中为假。或者您可以直接在 TextSlide 中而不是在其他中使用此按钮,这样无需检查任何内容。并且与放大相关的处理只会在 TextSlide 一类中进行。

如果节目被设计为在单个窗口中进行,比如在 PowerPoint 中,Slide 子类的每个实例是否都需要构造一个 JFrame 对象?

在我看来,幻灯片类应该扩展JPanel。您可以轻松更改单个框架上的面板。

一些可以帮助您的问题/答案:

于 2012-07-06T04:41:57.600 回答
3
于 2012-07-06T04:46:13.137 回答
1

你有很多事情要做,但让我们看看我能不能帮忙。

1:我看到了两个关于如何布置“magnifyTextButton”的选项。首先是使其成为TextSlide. 没有理由ImageSlide需要知道任何关于magnifyTextButton. 在这种格式中,您将在您的总体抽象类中拥有一个“绘制”抽象方法(然后最好将其保留为接口)。我不像下面的那样喜欢这种方法。

您的另一个选择是制作MagnifyTextButton一个decorator。这样,您可以混合和匹配MagnifyTextButton其他包含文本的类(TextSlide您可能非常想要的扩展名)。这将为您提供更多的多功能性,并要求您的Slide班级需要了解的更少MagnifyTextButtons

2:我认为你希望这是一个 Jpanel 而不是 Jframe。

于 2012-07-06T04:50:08.233 回答