使用多个JFrames:好或坏的做法?

问题:

我正在开发一个显示图像并从数据库播放声音的应用程序。我试图决定是否使用单独的JFrame从GUI添加图像到数据库。
我只是想知道使用多个JFrame窗口是否是最佳做法?

回答:

我只是想知道使用多个JFrames是否是最佳做法?

坏(坏,坏)的做法。

  • 用户不友好:当期望只看到一个时,用户在其任务栏中看到多个图标。加上编码问题的副作用
  • 一个恶梦代码和维护:

     

    • A modal dialog offers the easy opportunity to focus attention on the content of that dialog – choose/fix/cancel this, then proceed. Multiple frames do not.
    • A dialog (or floating tool-bar) with a parent will come to front when the parent is clicked on – you’d have to implement that in frames if that was the desired behavior.

在一个GUI中显示许多元素的方法有很多种,例如:

  •  CardLayout(短demo.)。适合于:

     

    1. Showing wizard like dialogs.
    2. Displaying list, tree etc. selections for items that have an associated component.
    3. Flipping between no component and visible component.
  •  JInternalFrame/JDesktopPane通常用于MDI
  •  JTabbedPane组成的组。
  •  JSplitPane一种显示其中一个或另一个(大小)之间的重要性的两个组件的方式根据用户正在做什么而变化。
  •  JLayeredPane很多井。组件。
  •  JToolBar通常包含一组操作或控件。可以在GUI上拖动,也可以根据用户需要完全关闭。如上所述,将根据父母这样做最小化/恢复。
  • 作为JList中的项目(以下简单示例)。
  • 作为JTree中的节点。
  •  Nested layouts

但是,如果这些策略对于特定用例无效,请尝试以下操作。建立一个主要的JFrame,然后为其余的自由浮动元素显示JDialogJOptionPane实例,使用框架作为对话框的父项。

许多图像

在这种情况下,多个元素是图像,最好使用以下任一方法:

  1. 单个JLabel(以滚动窗格为中心),以显示用户当时感兴趣的图像。如ImageViewer所示。
  2. 单行JList。如this answer所示。 “单行”的一部分只有在相同的维度上才起作用。或者,如果您准备在飞行中缩放图像,并且它们具有相同的宽高比(例如4:3或16:9)。

 

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: The Use of Multiple JFrames: Good or Bad Practice?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 5 = 3