2015-05-12 61 views
0

打開我開發一個Swing應用程序,只是有點查詢有關JOptionPane.showMessageDialog()這是竊聽我:JOptionPane的窗口,在後臺

  • JOptionPane.showMessageDialog(null, "Record entered successfully");
    如果我寫這樣的代碼出現在我的父母后面的留言窗口幀。
  • JOptionPane.showMessageDialog(this, "Record entered successfully");
    而此代碼自動將窗口放在父框架上。

的問題是:在實施null作爲第一個參數得到消息在當前父幀的背景,而如果我寫this作爲第一個參數的窗口出現在父框架。爲什麼這會發生?

+1

問題是什麼? – kiheru

+1

當窗口「擁有」時,對話框將出現在窗口上方並將阻止它。這就是他們的工作原理 – MadProgrammer

+0

問題是:在實現**'null ** **作爲第一個參數時,我在當前父框架的背景下獲取消息,而如果我將**'this' **作爲第一個參數,窗口來自父框架。這是爲什麼發生? – mustangDC

回答

1

在該方法中

showMessageDialog(Component parentComponent, Object message) 

的第一個參數設置對話框的父:

爲父級

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

我假定該方法會出現一個JFrame類內部,在這種情況下,通過this作爲參數將設置父組件作爲該幀。