package op.tools; import gui.GUITools; import op.OPDE; import javax.swing.*; import javax.swing.border.LineBorder; import java.awt.*; /** * Created by IntelliJ IDEA. * User: tloehr * Date: 11.05.12 * Time: 14:15 * To change this template use File | Settings | File Templates. */ public class MyJDialog extends JDialog { private JPanel content; public MyJDialog(boolean decorated) { this(OPDE.getMainframe(), decorated); } public MyJDialog() { this(true); } public MyJDialog(JFrame owner) { this(owner, true); } public MyJDialog(Dialog owner, boolean decorated) { super(owner, true); setLocationRelativeTo(getParent()); initContent(); setResizable(false); setUndecorated(!decorated); } public MyJDialog(JFrame owner, boolean decorated) { super(owner, true); setLocationRelativeTo(getParent()); initContent(); setResizable(false); setUndecorated(!decorated); } @Override public Dimension getPreferredSize() { // makes sure, that the dialog is never larger than the screen in use. Rectangle maximumsize = GUITools.getScreenSize(GUITools.getCurrentScreen(OPDE.getMainframe())); Dimension dim = super.getPreferredSize(); if (dim.getWidth() > maximumsize.getWidth() * 0.9) dim.setSize(maximumsize.getWidth() * 0.9, dim.getHeight()); if (dim.getHeight() > maximumsize.getHeight() * 0.9) dim.setSize(dim.getWidth(), maximumsize.getHeight() * 0.9); return dim; } public MyJDialog(Dialog owner) { this(owner, true); } private void initContent() { content = new JPanel(); content.setBorder(new LineBorder(Color.BLACK, 1)); setContentPane(content); } @Override public void dispose() { setVisible(false); } @Override public void setVisible(boolean b) { setLocation(OPDE.getMainframe().getLocationForDialog(getSize())); super.setVisible(b); } }