2014-10-22 79 views
1

從我的主窗體中我想顯示一個新窗體。Java - Swing - JOptionPane填充

當新窗體被打開時,需要將其視爲一個孩子,因爲點擊父窗口提供了孩子的注意力。 JFrames沒有明顯模態的,所以我使用:

JOptionPane.showOptionDialog(null, MYPANEL, "Title", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, new Object[]{}, null); 

...其中MYPANEL看起來與我需要在我的形式。

這個工作原理是100%,除了面板邊緣和JOptionPane對話框之間有填充(大約20px左右)之外。

我該如何擺脫這個?

將面板的邊框設置爲0的空邊框,因爲尺寸沒有改變。

+3

製作你自己的對話框,它使用一個'JDialog' – MadProgrammer 2014-10-22 04:56:45

回答

3

將面板的邊框設置爲0的空邊框,因爲尺寸沒有任何變化。

您需要設置對話框內容窗格的邊框。不知道這是否會在所有LAF的工作,但你可以使用金屬和Windows以下內容:

UIManager.put("OptionPane.border", new EmptyBorder(0, 0, 0, 0)); 

更多信息請參見UIManager Defaults

這將更改所有選項窗格的屬性。因此,您可能需要保存默認邊框,創建選項窗格,然後恢復原始邊框以創建其他選項窗格。

也許另一種選擇是將ContainerListener添加到面板。然後你可以處理componentAdded(...)事件。事件生成時,您可以獲取父面板並刪除邊框。