多个JFrame的使用:好的还是坏的做法? [英] The Use of Multiple JFrames: Good or Bad Practice?

查看:210
本文介绍了多个JFrame的使用:好的还是坏的做法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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

解决方案


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


糟糕(坏,坏)的做法。




  • 用户不友好:当期望只看到一个时,用户会在任务栏中看到多个图标。加上编码问题的副作用..

  • 编码和维护的噩梦:


    • A 或所示。只有尺寸相同的单排部分才有效。或者,如果您准备在运行中缩放图像,它们都具有相同的宽高比(例如4:3或16:9)。


    • I'm developing an application which displays images, and plays sounds from a database. I'm trying to decide whether or not to use a separate JFrame to add images to the database from the GUI.

      I'm just wondering whether it is good practice to use multiple JFrame windows?

      解决方案

      I'm just wondering whether it is good practice to use multiple JFrames?

      Bad (bad, bad) practice.

      • User unfriendly: The user sees multiple icons in their task bar when expecting to see only one. Plus the side effects of the coding problems..
      • A nightmare to code and maintain:
        • 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.

      There are any number of ways of displaying many elements in one GUI, e.g.:

      • CardLayout (short demo.). Good for:

        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 typically used for an MDI.
      • JTabbedPane for groups of components.
      • JSplitPane A way to display two components of which the importance between one or the other (the size) varies according to what the user is doing.
      • JLayeredPane far many well ..layered components.
      • JToolBar typically contains groups of actions or controls. Can be dragged around the GUI, or off it entirely according to user need. As mentioned above, will minimize/restore according to the parent doing so.
      • As items in a JList (simple example below).
      • As nodes in a JTree.
      • Nested layouts.

      But if those strategies do not work for a particular use-case, try the following. Establish a single main JFrame, then have JDialog or JOptionPane instances appear for the rest of the free-floating elements, using the frame as the parent for the dialogs.

      Many images

      In this case where the multiple elements are images, it would be better to use either of the following instead:

      1. A single JLabel (centered in a scroll pane) to display whichever image the user is interested in at that moment. As seen in ImageViewer.
      2. A single row JList. As seen in this answer. The 'single row' part of that only works if they are all the same dimensions. Alternately, if you are prepared to scale the images on the fly, and they are all the same aspect ratio (e.g. 4:3 or 16:9).

      这篇关于多个JFrame的使用:好的还是坏的做法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆