diff --git a/src/main/java/forge/deck/DeckgenUtil.java b/src/main/java/forge/deck/DeckgenUtil.java index 3124ee2483a..4a4a7a1e610 100644 --- a/src/main/java/forge/deck/DeckgenUtil.java +++ b/src/main/java/forge/deck/DeckgenUtil.java @@ -269,7 +269,7 @@ public class DeckgenUtil { msg.append("Copy Decklist to Clipboard?"); // Output - final int rcMsg = JOptionPane.showConfirmDialog(null, msg, "Decklist", JOptionPane.OK_CANCEL_OPTION); + final int rcMsg = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), msg, "Decklist", JOptionPane.OK_CANCEL_OPTION); if (rcMsg == JOptionPane.OK_OPTION) { final StringSelection ss = new StringSelection(deckList.toString()); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); @@ -287,14 +287,14 @@ public class DeckgenUtil { boolean result = true; if (colors0.size() == 4) { - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Sorry, four color generated decks aren't supported yet." + "\n\rPlease use 2, 3, or 5 colors for this deck.", "Generate deck: 4 colors", JOptionPane.ERROR_MESSAGE); result = false; } else if (colors0.size() > 5) { - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Generate deck: maximum five colors!", "Generate deck: too many colors", JOptionPane.ERROR_MESSAGE); result = false; diff --git a/src/main/java/forge/deck/io/OldDeckParser.java b/src/main/java/forge/deck/io/OldDeckParser.java index 800676d0149..a745b2379c6 100644 --- a/src/main/java/forge/deck/io/OldDeckParser.java +++ b/src/main/java/forge/deck/io/OldDeckParser.java @@ -150,7 +150,7 @@ public class OldDeckParser { this.draft.add(d); } else { final String msg = String.format("Draft '%s' lacked some decks.%n%nShould it be deleted?"); - mayDelete = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null, msg, "Draft loading error", + mayDelete = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), msg, "Draft loading error", JOptionPane.YES_NO_OPTION); } @@ -187,7 +187,7 @@ public class OldDeckParser { .format("Can not convert deck '%s' for some unsupported cards it contains. %n%s%n%nMay Forge delete all such decks?", name, ex.getMessage()); allowDeleteUnsupportedConstructed = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog( - null, msg, "Problem converting decks", JOptionPane.YES_NO_OPTION); + JOptionPane.getRootFrame(), msg, "Problem converting decks", JOptionPane.YES_NO_OPTION); } } if (importedOk || allowDeleteUnsupportedConstructed) { diff --git a/src/main/java/forge/error/BugReporter.java b/src/main/java/forge/error/BugReporter.java index 64e0f2d5f49..886ee7d49d3 100644 --- a/src/main/java/forge/error/BugReporter.java +++ b/src/main/java/forge/error/BugReporter.java @@ -274,7 +274,7 @@ public class BugReporter { // browse to url Desktop.getDesktop().browse(new URI(url)); } catch (Exception ex) { - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Sorry, a problem occurred while opening the forum in your default browser.", "A problem occured", JOptionPane.ERROR_MESSAGE); } diff --git a/src/main/java/forge/game/limited/BoosterDraft.java b/src/main/java/forge/game/limited/BoosterDraft.java index 1ee3183d704..7ef6d767bf5 100644 --- a/src/main/java/forge/game/limited/BoosterDraft.java +++ b/src/main/java/forge/game/limited/BoosterDraft.java @@ -138,11 +138,9 @@ public final class BoosterDraft implements IBoosterDraft { final List myDrafts = this.loadCustomDrafts("res/draft/", ".draft"); if (myDrafts.isEmpty()) { - JOptionPane - .showMessageDialog(null, "No custom draft files found.", "", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "No custom draft files found.", "", JOptionPane.INFORMATION_MESSAGE); } else { - final CustomLimited draft = GuiChoose.one("Choose Custom Draft", - myDrafts); + final CustomLimited draft = GuiChoose.one("Choose Custom Draft", myDrafts); this.setupCustomDraft(draft); } break; diff --git a/src/main/java/forge/game/limited/SealedCardPoolGenerator.java b/src/main/java/forge/game/limited/SealedCardPoolGenerator.java index a4ef1444719..80d5482fb9c 100644 --- a/src/main/java/forge/game/limited/SealedCardPoolGenerator.java +++ b/src/main/java/forge/game/limited/SealedCardPoolGenerator.java @@ -152,7 +152,7 @@ public class SealedCardPoolGenerator { // present list to user if (customs.isEmpty()) { - JOptionPane.showMessageDialog(null, "No custom sealed files found.", "", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "No custom sealed files found.", "", JOptionPane.INFORMATION_MESSAGE); } else { final CustomLimited draft = GuiChoose.one("Choose Custom Sealed Pool", customs); diff --git a/src/main/java/forge/game/player/PlayerControllerHuman.java b/src/main/java/forge/game/player/PlayerControllerHuman.java index 460e679d11f..f1fc105c1c8 100644 --- a/src/main/java/forge/game/player/PlayerControllerHuman.java +++ b/src/main/java/forge/game/player/PlayerControllerHuman.java @@ -146,10 +146,10 @@ public class PlayerControllerHuman extends PlayerController { if (newMain != null) { if (newMain.size() < deckMinSize) { String errMsg = String.format("Too few cards in your main deck (minimum %d), please make modifications to your deck again.", deckMinSize); - JOptionPane.showMessageDialog(null, errMsg, "Invalid deck", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), errMsg, "Invalid deck", JOptionPane.ERROR_MESSAGE); } else { String errMsg = String.format("Too many cards in your sideboard (maximum %d), please make modifications to your deck again.", sbMax); - JOptionPane.showMessageDialog(null, errMsg, "Invalid deck", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), errMsg, "Invalid deck", JOptionPane.ERROR_MESSAGE); } } // Sideboard rules have changed for M14, just need to consider min maindeck and max sideboard sizes @@ -218,7 +218,7 @@ public class PlayerControllerHuman extends PlayerController { String message = String.format("How much will you announce for %s?%s", announce, canChooseZero ? "" : " (X cannot be 0)"); while(true){ - String str = JOptionPane.showInputDialog(null, message, ability.getSourceCard().getName(), JOptionPane.QUESTION_MESSAGE); + String str = JOptionPane.showInputDialog(JOptionPane.getRootFrame(), message, ability.getSourceCard().getName(), JOptionPane.QUESTION_MESSAGE); if (null == str) return null; // that is 'cancel' if(StringUtils.isNumeric(str)) { diff --git a/src/main/java/forge/gui/CardListViewer.java b/src/main/java/forge/gui/CardListViewer.java index af3950fa3db..d457e085f68 100644 --- a/src/main/java/forge/gui/CardListViewer.java +++ b/src/main/java/forge/gui/CardListViewer.java @@ -138,7 +138,7 @@ public class CardListViewer { } this.jList.setSelectedIndex(0); - this.dialog = this.optionPane.createDialog(this.optionPane.getParent(), this.title); + this.dialog = this.optionPane.createDialog(JOptionPane.getRootFrame(), this.title); this.dialog.setSize(720, 360); this.dialog.addWindowFocusListener(new CardListFocuser()); this.dialog.setLocationRelativeTo(null); diff --git a/src/main/java/forge/gui/GuiDialog.java b/src/main/java/forge/gui/GuiDialog.java index 1cbb641df26..c010dad0c32 100644 --- a/src/main/java/forge/gui/GuiDialog.java +++ b/src/main/java/forge/gui/GuiDialog.java @@ -39,7 +39,7 @@ public class GuiDialog { final String title = c == null ? "Question" : c.getName() + " - Ability"; String questionToUse = StringUtils.isBlank(question) ? "Activate card's ability?" : question; String[] opts = options == null ? defaultConfirmOptions : options; - int answer = JOptionPane.showOptionDialog(null, questionToUse, title, + int answer = JOptionPane.showOptionDialog(JOptionPane.getRootFrame(), questionToUse, title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, opts, opts[defaultIsYes ? 0 : 1]); return answer == JOptionPane.YES_OPTION; @@ -72,7 +72,7 @@ public class GuiDialog { FThreads.invokeInEdtAndWait(new Runnable() { @Override public void run() { - JOptionPane.showMessageDialog(null, message, title, JOptionPane.PLAIN_MESSAGE); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), message, title, JOptionPane.PLAIN_MESSAGE); } }); } diff --git a/src/main/java/forge/gui/GuiDisplayUtil.java b/src/main/java/forge/gui/GuiDisplayUtil.java index ab38b4444c5..913b9acc21a 100644 --- a/src/main/java/forge/gui/GuiDisplayUtil.java +++ b/src/main/java/forge/gui/GuiDisplayUtil.java @@ -129,9 +129,9 @@ public final class GuiDisplayUtil { in.close(); } catch (final FileNotFoundException fnfe) { - JOptionPane.showMessageDialog(null, "File not found: " + fc.getSelectedFile().getAbsolutePath()); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "File not found: " + fc.getSelectedFile().getAbsolutePath()); } catch (final Exception e) { - JOptionPane.showMessageDialog(null, "Error loading battle setup file!"); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Error loading battle setup file!"); return; } diff --git a/src/main/java/forge/gui/ListChooser.java b/src/main/java/forge/gui/ListChooser.java index 84527feb662..1d976ee3f7c 100644 --- a/src/main/java/forge/gui/ListChooser.java +++ b/src/main/java/forge/gui/ListChooser.java @@ -145,7 +145,7 @@ public class ListChooser { } Integer value; do { - this.dialog = this.optionPane.createDialog(this.optionPane.getParent(), this.title); + this.dialog = this.optionPane.createDialog(JOptionPane.getRootFrame(), this.title); if (this.minChoices != 0) { this.dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); } diff --git a/src/main/java/forge/gui/deckeditor/SEditorIO.java b/src/main/java/forge/gui/deckeditor/SEditorIO.java index e13933eb63a..8aed070289d 100644 --- a/src/main/java/forge/gui/deckeditor/SEditorIO.java +++ b/src/main/java/forge/gui/deckeditor/SEditorIO.java @@ -41,7 +41,7 @@ public class SEditorIO { // Warn if no name if (name == null || name.isEmpty()) { - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Please name your deck using the 'Title' box.", "Save Error!", JOptionPane.ERROR_MESSAGE); @@ -84,7 +84,7 @@ public class SEditorIO { public static boolean confirmSaveChanges() { if (!((DeckController) CDeckEditorUI .SINGLETON_INSTANCE.getCurrentEditorController().getDeckController()).isSaved()) { - final int choice = JOptionPane.showConfirmDialog(null, + final int choice = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "Save changes to current deck?", "Save Changes?", JOptionPane.YES_NO_CANCEL_OPTION, diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java index 5b89e430461..2a2b3196a3c 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java @@ -188,7 +188,7 @@ public class CEditorDraftingProcess extends ACEditorBase { *

*/ private void saveDraft() { - String s = JOptionPane.showInputDialog(null, + String s = JOptionPane.showInputDialog(JOptionPane.getRootFrame(), "Save this draft as:", "Save draft", JOptionPane.QUESTION_MESSAGE); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java index 04357136d85..241bf0121fe 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java @@ -357,7 +357,7 @@ public final class CEditorQuestCardShop extends ACEditorBase this.questData.getAssets().getCredits()) { - JOptionPane.showMessageDialog(null, "Not enough credits!"); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Not enough credits!"); return; } @@ -394,7 +394,7 @@ public final class CEditorQuestCardShop extends ACEditorBase sealedDecks = Singletons.getModel().getDecks().getSealed(); if (sealedDecks.contains(sDeckName)) { - final int deleteDeck = JOptionPane.showConfirmDialog(null, "\"" + sDeckName + final int deleteDeck = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "\"" + sDeckName + "\" already exists! Do you want to replace it?", "Sealed Deck Game Exists", JOptionPane.YES_NO_OPTION); diff --git a/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java b/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java index 3d89bc9fd0c..1f3836d87cb 100644 --- a/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java +++ b/src/main/java/forge/gui/home/settings/CSubmenuPreferences.java @@ -163,7 +163,7 @@ public enum CSubmenuPreferences implements ICDoc { String userPrompt = "This will reset all preferences to their defaults and restart Forge.\n\n" + "Reset and restart Forge?"; - int reply = JOptionPane.showConfirmDialog(null, userPrompt, "Reset Settings", JOptionPane.YES_NO_OPTION); + int reply = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), userPrompt, "Reset Settings", JOptionPane.YES_NO_OPTION); if (reply == JOptionPane.YES_OPTION) { ForgePreferences prefs = Singletons.getModel().getPreferences(); prefs.reset(); @@ -178,10 +178,10 @@ public enum CSubmenuPreferences implements ICDoc { "This will reset the Deck Editor screen layout.\n" + "All tabbed views will be restored to their default positions.\n\n" + "Reset layout?"; - int reply = JOptionPane.showConfirmDialog(null, userPrompt, "Reset Deck Editor Layout", JOptionPane.YES_NO_OPTION); + int reply = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), userPrompt, "Reset Deck Editor Layout", JOptionPane.YES_NO_OPTION); if (reply == JOptionPane.YES_OPTION) { deleteScreenLayoutFile(Screens.DECK_EDITOR_CONSTRUCTED); - JOptionPane.showMessageDialog(null, "Deck Editor layout has been reset."); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Deck Editor layout has been reset."); } } @@ -191,10 +191,10 @@ public enum CSubmenuPreferences implements ICDoc { "If you want to save the current layout first, please use " + "the Dock tab -> Save Layout option in the Match screen.\n\n" + "Reset layout?"; - int reply = JOptionPane.showConfirmDialog(null, userPrompt, "Reset Match Screen Layout", JOptionPane.YES_NO_OPTION); + int reply = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), userPrompt, "Reset Match Screen Layout", JOptionPane.YES_NO_OPTION); if (reply == JOptionPane.YES_OPTION) { deleteScreenLayoutFile(Screens.MATCH_SCREEN); - JOptionPane.showMessageDialog(null, "Match Screen layout has been reset."); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Match Screen layout has been reset."); } } diff --git a/src/main/java/forge/gui/home/settings/GamePlayerUtil.java b/src/main/java/forge/gui/home/settings/GamePlayerUtil.java index f4361bfd1b5..ae5cc027489 100644 --- a/src/main/java/forge/gui/home/settings/GamePlayerUtil.java +++ b/src/main/java/forge/gui/home/settings/GamePlayerUtil.java @@ -20,7 +20,7 @@ public final class GamePlayerUtil { if (StringUtils.isBlank(playerName)) { newName = (String)JOptionPane.showInputDialog( - Singletons.getView().getFrame(), + JOptionPane.getRootFrame(), "By default, Forge will refer to you as the \"Human\" during gameplay.\n" + "If you would prefer a different name please enter it now.\n", "Personalize Forge Gameplay", @@ -43,7 +43,7 @@ public final class GamePlayerUtil { if (StringUtils.isBlank(playerName) && newName != "Human") { JOptionPane.showMessageDialog( - Singletons.getView().getFrame(), + JOptionPane.getRootFrame(), "Thank you, " + newName + ". " + "You will not be prompted again but you can change\nyour name at any time using the \"Player Name\" setting in Preferences.\n\n"); } @@ -53,7 +53,7 @@ public final class GamePlayerUtil { private static String getNewPlayerNameFromInputDialog(String playerName) { String newName = (String)JOptionPane.showInputDialog( - Singletons.getView().getFrame(), + JOptionPane.getRootFrame(), "Please enter a new name (alpha-numeric only)\n", "Personalize Forge Gameplay", JOptionPane.PLAIN_MESSAGE, diff --git a/src/main/java/forge/gui/home/variant/CSubmenuCommander.java b/src/main/java/forge/gui/home/variant/CSubmenuCommander.java index fcf5bf02c8a..c3b211378d6 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuCommander.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuCommander.java @@ -130,7 +130,7 @@ public enum CSubmenuCommander implements ICDoc { if (null != errorMessage) { if(!problemDecks.contains(d)) { - JOptionPane.showMessageDialog(null, "The deck " + d.getName() + " " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "The deck " + d.getName() + " " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE); problemDecks.add(d); } } diff --git a/src/main/java/forge/gui/match/controllers/CDock.java b/src/main/java/forge/gui/match/controllers/CDock.java index d2afb6950de..a6eb1b7c1f0 100644 --- a/src/main/java/forge/gui/match/controllers/CDock.java +++ b/src/main/java/forge/gui/match/controllers/CDock.java @@ -267,7 +267,7 @@ public enum CDock implements ICDoc { msg.append("Copy Decklist to Clipboard?"); - int rcMsg = JOptionPane.showConfirmDialog(null, msg, ttl, JOptionPane.OK_CANCEL_OPTION); + int rcMsg = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), msg, ttl, JOptionPane.OK_CANCEL_OPTION); if (rcMsg == JOptionPane.OK_OPTION) { final StringSelection ss = new StringSelection(deckList.toString()); diff --git a/src/main/java/forge/gui/menus/HelpMenu.java b/src/main/java/forge/gui/menus/HelpMenu.java index 4cec6e2dd51..bad4d6bb74d 100644 --- a/src/main/java/forge/gui/menus/HelpMenu.java +++ b/src/main/java/forge/gui/menus/HelpMenu.java @@ -12,7 +12,6 @@ import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.KeyStroke; -import forge.Singletons; import forge.model.BuildInfo; import forge.util.FileUtil; @@ -44,7 +43,7 @@ public final class HelpMenu { @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog( - Singletons.getView().getFrame(), + JOptionPane.getRootFrame(), "Version : " + BuildInfo.getVersionString(), "About Forge", JOptionPane.INFORMATION_MESSAGE); diff --git a/src/main/java/forge/gui/menus/MenuUtil.java b/src/main/java/forge/gui/menus/MenuUtil.java index d0d775efe61..c9586560a5c 100644 --- a/src/main/java/forge/gui/menus/MenuUtil.java +++ b/src/main/java/forge/gui/menus/MenuUtil.java @@ -37,7 +37,7 @@ public final class MenuUtil { public static boolean getUserConfirmation(String prompt, String dialogTitle) { Object[] options = {"Yes", "No"}; int reply = JOptionPane.showOptionDialog( - null, + JOptionPane.getRootFrame(), prompt, dialogTitle, JOptionPane.YES_NO_OPTION, diff --git a/src/main/java/forge/gui/toolbox/FHyperlink.java b/src/main/java/forge/gui/toolbox/FHyperlink.java index 50e483c4b27..eb0cefbe899 100644 --- a/src/main/java/forge/gui/toolbox/FHyperlink.java +++ b/src/main/java/forge/gui/toolbox/FHyperlink.java @@ -58,7 +58,7 @@ public class FHyperlink extends FLabel { try { Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); } catch (IllegalStateException ex) { - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Sorry, a problem occurred while copying this link to your system clipboard.", "A problem occured", JOptionPane.ERROR_MESSAGE); } diff --git a/src/main/java/forge/gui/toolbox/special/DeckLister.java b/src/main/java/forge/gui/toolbox/special/DeckLister.java index 148c41335d7..3267e9846c3 100644 --- a/src/main/java/forge/gui/toolbox/special/DeckLister.java +++ b/src/main/java/forge/gui/toolbox/special/DeckLister.java @@ -468,7 +468,7 @@ public class DeckLister extends JPanel implements ILocalRepaint { private void deleteDeck(final RowPanel r0) { final Deck d0 = r0.getDeck(); - final int n = JOptionPane.showConfirmDialog(null, "Are you sure you want to delete \"" + d0.getName() + "\" ?", + final int n = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "Are you sure you want to delete \"" + d0.getName() + "\" ?", "Delete Deck", JOptionPane.YES_NO_OPTION); if (n == JOptionPane.NO_OPTION) { diff --git a/src/main/java/forge/quest/QuestUtilUnlockSets.java b/src/main/java/forge/quest/QuestUtilUnlockSets.java index cee0f2db5bd..19204b7876b 100644 --- a/src/main/java/forge/quest/QuestUtilUnlockSets.java +++ b/src/main/java/forge/quest/QuestUtilUnlockSets.java @@ -94,7 +94,7 @@ public class QuestUtilUnlockSets { CardEdition choosenEdition = toBuy.left; if (qData.getAssets().getCredits() < price) { - JOptionPane.showMessageDialog(null, "Unfortunately, you cannot afford that set yet.\n" + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Unfortunately, you cannot afford that set yet.\n" + "To unlock " + choosenEdition.getName() + ", you need " + price + " credits.\n" + "You have only " + qData.getAssets().getCredits() + " credits.", "Failed to unlock " + choosenEdition.getName(), @@ -102,7 +102,7 @@ public class QuestUtilUnlockSets { return null; } - final int unlockConfirm = JOptionPane.showConfirmDialog(null, + final int unlockConfirm = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "Unlocking " + choosenEdition.getName() + " will cost you " + price + " credits.\n" + "You have " + qData.getAssets().getCredits() + " credits.\n\n" + "Are you sure you want to unlock " + choosenEdition.getName() + "?", diff --git a/src/main/java/forge/util/storage/StorageReaderFile.java b/src/main/java/forge/util/storage/StorageReaderFile.java index 2fd938a6166..422bee0e823 100644 --- a/src/main/java/forge/util/storage/StorageReaderFile.java +++ b/src/main/java/forge/util/storage/StorageReaderFile.java @@ -78,7 +78,7 @@ public abstract class StorageReaderFile extends StorageReaderBase { if (null == item) { final String msg = "An object stored in " + this.file.getPath() + " failed to load.\nPlease submit this as a bug with the mentioned file attached."; - JOptionPane.showMessageDialog(null, msg); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), msg); continue; } diff --git a/src/main/java/forge/util/storage/StorageReaderFileSections.java b/src/main/java/forge/util/storage/StorageReaderFileSections.java index 08881df2169..57974777fe1 100644 --- a/src/main/java/forge/util/storage/StorageReaderFileSections.java +++ b/src/main/java/forge/util/storage/StorageReaderFileSections.java @@ -104,7 +104,7 @@ public abstract class StorageReaderFileSections extends StorageReaderBase if (null != item) return item; final String msg = "An object stored in " + this.file.getPath() + " failed to load.\nPlease submit this as a bug with the mentioned file attached."; - JOptionPane.showMessageDialog(null, msg); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), msg); return null; } diff --git a/src/main/java/forge/util/storage/StorageReaderFolder.java b/src/main/java/forge/util/storage/StorageReaderFolder.java index 1c2d98db9d5..b4ac29cbfa6 100644 --- a/src/main/java/forge/util/storage/StorageReaderFolder.java +++ b/src/main/java/forge/util/storage/StorageReaderFolder.java @@ -100,7 +100,7 @@ public abstract class StorageReaderFolder extends StorageReaderBase { final String msg = "An object stored in " + file.getPath() + " failed to load.\nPlease submit this as a bug with the mentioned file/directory attached."; - JOptionPane.showMessageDialog(null, msg); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), msg); continue; } String newKey = keySelector.apply(newDeck); @@ -110,10 +110,8 @@ public abstract class StorageReaderFolder extends StorageReaderBase { result.put(newKey, newDeck); } catch (final OldDeckFileFormatException ex) { if (!hasWarnedOfOldFormat) { - JOptionPane - .showMessageDialog( - null, - "Found a deck in old fileformat in the storage.\nMoving this file and all similiar ones to parent folder.\n\nForge will try to convert them in a second."); + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), + "Found a deck in old fileformat in the storage.\nMoving this file and all similiar ones to parent folder.\n\nForge will try to convert them in a second."); hasWarnedOfOldFormat = true; } file.renameTo(new File(this.directory.getParentFile(), file.getName())); @@ -125,7 +123,7 @@ public abstract class StorageReaderFolder extends StorageReaderBase { } if (!decksThatFailedToLoad.isEmpty()) { - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), StringUtils.join(decksThatFailedToLoad, System.getProperty("line.separator")), "Some of your objects were not loaded.", JOptionPane.WARNING_MESSAGE); } diff --git a/src/main/java/forge/view/FView.java b/src/main/java/forge/view/FView.java index 24096d65cc8..b009a1a183f 100644 --- a/src/main/java/forge/view/FView.java +++ b/src/main/java/forge/view/FView.java @@ -17,6 +17,7 @@ import java.util.List; import java.util.Set; import javax.swing.JLayeredPane; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; @@ -94,6 +95,7 @@ public enum FView { private FView() { frmSplash = new SplashFrame(); frmDocument.setTitle("Forge: " + BuildInfo.getVersionString()); + JOptionPane.setRootFrame(frmDocument); } /** */