tangguo

使用多个JFrame:好的还是不好的做法?

java

我正在开发一个显示图像并播放数据库声音的应用程序。我正在尝试确定是否使用单独的JFrame从GUI向数据库添加图像。

我只是想知道使用多个JFrame窗口是否是一种好习惯?


阅读 363

收藏
2020-10-17

共1个答案

小编典典

我只是想知道使用多个JFrames是否是一种好习惯?

坏习惯(坏习惯)。

用户不友好:用户只希望看到一个图标时,会在任务栏中看到多个图标。加上编码问题的副作用。 * 编写和维护代码的噩梦:
* 一个模态对话框提供对对话内容的轻松机会,重点关注-选择/修复/取消,然后继续。多个帧则没有。
* 单击父级时,带有父级的对话框(或浮动工具栏)将显示在最前面-如果这是所需的行为,则必须在框架中实现。
有多种方法可以在一个GUI中显示许多元素,例如:

  • CardLayout(简短演示。)。适用于:
  • 显示向导之类的对话框。
  • 显示具有关联组件的项目的列表,树等选择。
  • 在无组件和可见组件之间翻转。
  • JInternalFrame/JDesktopPane通常用于MDI。
  • JTabbedPane 用于组件组。
  • JSplitPane一种显示两个组件的方法,其中两个组件之间的重要性(大小)根据用户的操作而变化。
    JLayeredPane 许多很好的..layered组件。
    JToolBar通常包含一组动作或控件。可以在GUI上拖动,或完全根据用户需要将其关闭。如上所述,将根据父级的操作将其最小化/还原。
    作为项目中的项目JList(下面是一个简单的示例)。
    作为中的节点JTree。
    嵌套的布局。

但是,如果这些策略不适用于特定用例,请尝试以下方法。建立单个main JFrame,然后使用框架作为对话框的父级,为其余的自由浮动元素显示JDialog或JOptionPane实例。

许多图像

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

  1. 单个JLabel(位于滚动窗格的中央)显示当时用户感兴趣的任何图像。如图所示ImageViewer

  2. 单行JList。从这个答案中可以看出。仅当它们的尺寸相同时,“单行”部分才有效。或者,如果您准备即时缩放图像,并且它们的纵横比都相同(例如4:3或16:9)。

2020-10-17