/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package mage.client.components; import java.awt.BorderLayout; import javax.swing.*; import mage.client.dialog.CardInfoWindowDialog; /** * * @author LevelX2 */ public class MageDesktopManager extends DefaultDesktopManager { static final int DESKTOP_ICON_WIDTH = 250; @Override public void iconifyFrame(JInternalFrame f) { super.iconifyFrame(f); if (f instanceof CardInfoWindowDialog) { JInternalFrame.JDesktopIcon icon = f.getDesktopIcon(); icon.setBounds(f.getX() + (f.getWidth() - DESKTOP_ICON_WIDTH), f.getY(), DESKTOP_ICON_WIDTH, icon.getHeight()); } } @Override public void deiconifyFrame(JInternalFrame f) { super.deiconifyFrame(f); if (f instanceof CardInfoWindowDialog) { JInternalFrame.JDesktopIcon icon = f.getDesktopIcon(); f.setBounds(icon.getX() + (DESKTOP_ICON_WIDTH - f.getWidth()), icon.getY(), f.getWidth(), f.getHeight()); } } public static void main(String args[]) { SwingUtilities.invokeLater(() -> { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JDesktopPane desktopPane = new JDesktopPane(); DesktopManager dm = new MageDesktopManager(); desktopPane.setDesktopManager(dm); JInternalFrame internalFrame = new JInternalFrame("Test Internal Frame", true, false, true, true); internalFrame.setSize(200, 150); internalFrame.setVisible(true); desktopPane.add(internalFrame); frame.add(desktopPane, BorderLayout.CENTER); frame.setSize(800, 600); frame.setVisible(true); }); } }