說我有JFrame類的一個對象作爲幀Java中的showMessageDialog中的frame和null有什麼區別?
我想知道是什麼東西打印給out.Both相同的結果
JOptionPane.showMessageDialog(null,message)
和
JOptionPane.showMessageDialog(frame,message)
之間的區別他們在同一個地方出現。所以我想知道這兩者之間究竟有什麼區別?實際上在背景中會發生什麼不同?
說我有JFrame類的一個對象作爲幀Java中的showMessageDialog中的frame和null有什麼區別?
我想知道是什麼東西打印給out.Both相同的結果
JOptionPane.showMessageDialog(null,message)
和
JOptionPane.showMessageDialog(frame,message)
之間的區別他們在同一個地方出現。所以我想知道這兩者之間究竟有什麼區別?實際上在背景中會發生什麼不同?
當提供幀或任何其他部件選項窗格將在組件的中間彈出。但是,如果您提供的是null,則會在屏幕中間彈出。
在你的情況下,我猜你的Jframe是你的屏幕尺寸。所以如果你減小幀大小並在默認位置即左上角開始它,那麼你可能會看到不同。
兩者都將做幾乎same stuff
在那個例子中我的第一個參數的JOptionPane showMessageDialogmethod是frameobject(這大概是一個JFrame的一個實例)。如果由於某種原因,你不必JFrameor的JWindow實例的引用,則可以使該場空,仍然顯示相同的JOptionPane對話框,
而且從docs
parentComponent - 確定的顯示對話框的框架;如果爲null,或者parentComponent沒有Frame,則使用默認的Frame。
默認的框架是,您的主要是screen
。
從Java文檔:
爲父級 定義是成爲該對話框的父組件。它有兩種使用方式:包含它的框架用作對話框的框架父項,其屏幕座標用於對話框的位置。通常,對話框放置在組件的正下方。此參數可能爲空,在這種情況下,將使用默認的Frame作爲父級,並且對話框將在屏幕上居中(取決於L & F)。
有關詳細信息閱讀文檔here
// the dialog is centered on the desktop
JOptionPane.showMessageDialog(null,message)
// the dialog is centered on the frame
JOptionPane.showMessageDialog(frame,message)
不錯的答案+1 :) – Vinay