2013-08-23 76 views
4

說我有JFrame類的一個對象作爲幀Java中的showMessageDialog中的frame和null有什麼區別?

我想知道是什麼東西打印給out.Both相同的結果

JOptionPane.showMessageDialog(null,message) 

JOptionPane.showMessageDialog(frame,message) 

之間的區別他們在同一個地方出現。所以我想知道這兩者之間究竟有什麼區別?實際上在背景中會發生什麼不同?

回答

5

當提供幀或任何其他部件選項窗格將在組件的中間彈出。但是,如果您提供的是null,則會在屏幕中間彈出。

在你的情況下,我猜你的Jframe是你的屏幕尺寸。所以如果你減小幀大小並在默認位置即左上角開始它,那麼你可能會看到不同。

2

兩者都將做幾乎same stuff

在那個例子中我的第一個參數的JOptionPane showMessageDialogmethod是frameobject(這大概是一個JFrame的一個實例)。如果由於某種原因,你不必JFrameor的JWindow實例的引用,則可以使該場空,仍然顯示相同的JOptionPane對話框,

而且從docs

parentComponent - 確定的顯示對話框的框架;如果爲null,或者parentComponent沒有Frame,則使用默認的Frame。

默認的框架是,您的主要是screen

4

從Java文檔:

爲父級 定義是成爲該對話框的父組件。它有兩種使用方式:包含它的框架用作對話框的框架父項,其屏幕座標用於對話框的位置。通常,對話框放置在組件的正下方。此參數可能爲空,在這種情況下,將使用默認的Frame作爲父級,並且對話框將在屏幕上居中(取決於L & F)。

有關詳細信息閱讀文檔here

5
// the dialog is centered on the desktop 
JOptionPane.showMessageDialog(null,message) 

// the dialog is centered on the frame 
JOptionPane.showMessageDialog(frame,message) 
+0

不錯的答案+1 :) – Vinay

相關問題