我正在开发一个应用程序,它可以显示图像,播放来自数据库的声音。 我要决定是否使用单独的 JFrame 将图像从 GUI 添加到数据库中。
我只是想知道使用多个 JFrame 窗口是否是一个好的实践?
GUI 是写 JavaSE的基本的用法,很好学的。
如果你就是想实现一个简单的播放器,可以用这个。
我已经有一段时间没有碰过 swing 了,但是总的来说这样做是不好的。 以下是我想到的一些主要缺点:
更贵: 您必须分配更多的资源来绘制另一种类型的窗口容器的 JFrame,比如 Dialog 或 JInternalFrame。
不友好的用户界面: 导航到一堆粘在一起的 JFrame ,应用程序看起来乱哄哄的,设计也不好。
肯定运行的不好。一个原因是它不是很“用户友好” ,因为每个 JFrame 都会显示一个新的任务栏图标。 控制多个 JFrame 会把你气的抓狂。
就我个人而言,给应用程序使用一个 JFrame。多点显示,有很多啊Canvas,JInternalFrame, CardLayout, 甚至JPanel
不太好
• 用户不友好: 当用户希望只看到一个图标时,他们会在任务栏中看到多个图标。加上编码的副作用。
• 编码和维护的噩梦:
1. 模态对话框
提供了一个很容易的机会把注意力集中在对话框的内容上-选择 / 修复 / 取消这个, 然后处理完毕.
2. 一个对话框(或者浮动的工具栏)当主对话框被点击时会出现在前面——如果这是你想要,你必须在框架中实现它
在一个 GUI 中显示多个元素的方法有很多种,例如:
• CardLayout
(短demo
) 好处:
1. 像对话框一样显示向导
2. 显示具有关联组件的项的列表、树等选项
3. 在无组件和可见组件之间切换
通常用于MDI 计量吸入器
• JTabbedPane 对组元件
• JSplitPane 一种显示两个组件的方法,其中一个组件或另一个组件(大小)的重要性根据用户在做什么而变化
• JLayeredPane 很多很多. 层状组分
• JToolBar通常包含一组操作或控件。 可以在 GUI 中拖动,也可以根据用户需要完全关闭它。 如上所述,这样做来最小化或者恢复
•嵌套布局
但是,如果这些策略对于特定的用例不起作用,请试以下方法。 建立一个单独的主 JFrame,然后在其余的自由浮动元素中显示 JDialog 或 JOptionPane 实例,使用框架作为对话框的主元素。
多图片
在这种情况下,如果多个元素都是图像,那么最好使用以下任何一个元素:
1. 单JLabel (以滚动窗格为中心)显示用户当时感兴趣的图像。
2. 单排JList. 只有当它们都是相同的尺寸时,“单行”部分才能工作。 或者,如果你准备在飞行中缩放图像,它们都是相同的宽高比(例如4:3或16:9)