假设我有一个 JFrame 类的对象作为框架
我想知道这之间有什么区别
JOptionPane.showMessageDialog(null,message)
和
JOptionPane.showMessageDialog(frame,message)
打印出一些东西。两者都给出相同的结果,并且它们在同一个地方弹出。所以我想知道这两者之间的真正区别是什么?在背景中实际发生了什么不同?
提供框架或任何其他组件时,选项窗格将在组件的中间弹出。但是,如果您提供 null 那么它将在屏幕中间弹出。
在你的情况下,我猜你的 Jframe 是你的屏幕大小。因此,如果您减小帧大小并在默认位置(即左上角)启动它,那么您可能会看到差异。
// the dialog is centered on the desktop
JOptionPane.showMessageDialog(null,message)
// the dialog is centered on the frame
JOptionPane.showMessageDialog(frame,message)
来自java文档:
parentComponent 定义将成为此对话框的父级的组件。它有两种使用方式:包含它的 Frame 用作对话框的 Frame 父级,其屏幕坐标用于放置对话框。通常,对话框位于组件的正下方。此参数可能为空,在这种情况下,默认 Frame 被用作父级,并且对话框将在屏幕上居中(取决于 L&F)。
有关更多信息,请阅读此处的文档