在Java中幻灯片放映?

时间:2012-07-06 04:34:07

标签: java swing jframe

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

目标是展示一系列幻灯片,每个幻灯片都有导航按钮,以及依赖幻灯片内容的其他按钮。 (显示文字的幻灯片将显示magnifyTextButton,带图片的幻灯片不会显示此按钮。)

我认为抽象的Slide类是合适的,每个幻灯片类型都有子类:TextSlideImageSlide。我将如何实现这些子类,以便magnifyTextButton显示在TextSlide中,而不显示在任何其他幻灯片中?

此外,我的Slide课程延长了JFrame。如果show被设计为在单个窗口中发生,那么Slide的子类的每个实例都需要构造一个JFrame对象吗?

3 个答案:

答案 0 :(得分:3)

  

我如何实现这些子类以便magnifyTextButton   会出现在TextSlides中,而不会出现在任何其他幻灯片中吗?

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

  

Slide的子类的每个实例都需要构造一个JFrame   如果节目被设计为在一个窗口中发生,就像对象一样   在PowerPoint中?

在我看来,幻灯片分类应该延伸JPanel。您可以在一个框架上轻松更改面板。

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

答案 1 :(得分:3)

答案 2 :(得分:1)

你在这里有很多事情,但是让我们看看能不能帮忙。

1:我看到了两个如何布局“magnifyTextButton”的选项。第一个是使它成为TextSlide独有的方法。 ImageSlide没有理由需要了解magnifyTextButton的任何信息。在这种格式中,您将在您的总体抽象类中有一个“绘制”抽象方法(然后可能最好留作接口)。我不喜欢这种方法,就像下面的方法一样。

您的另一个选择是让MagnifyTextButton成为decorator。这样,您可以将MagnifyTextButton混合并匹配到其中包含文本的其他类(TextSlide的扩展名,您可能非常需要)。这将为您提供更多功能,并且要求您的Slide课程更少了解MagnifyTextButtons

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