package com.vci.client.ui.swing.components; import java.awt.Dialog; import java.awt.Dimension; import java.awt.Frame; import java.awt.GraphicsConfiguration; import java.awt.HeadlessException; import javax.swing.JDialog; import com.vci.client.ui.swing.VCISwingUtil; /** * *

Title:

*

Description:

*

Copyright: Copyright (c) 2012

*

Company: VCI

* @author xchao * @time 2012-5-10 * @version 1.0 */ public class VCIJDialog extends JDialog { public enum DialogResult{ OK, CANCEL, } /** * */ private static final long serialVersionUID = 7577447673438065060L; private DialogResult dialogResult = DialogResult.CANCEL; public VCIJDialog() throws HeadlessException { this((Frame)null, false); } public VCIJDialog(Frame owner) throws HeadlessException { this(owner, false); } public VCIJDialog(Dialog owner) throws HeadlessException { this(owner, false); } public VCIJDialog(Frame owner, boolean modal) throws HeadlessException { this(owner, null, modal); } public VCIJDialog(Frame owner, String title) throws HeadlessException { this(owner, title, false); } public VCIJDialog(Dialog owner, boolean modal) throws HeadlessException { this(owner, null, modal); } public VCIJDialog(Dialog owner, String title) throws HeadlessException { this(owner, title, false); } public VCIJDialog(Frame owner, String title, boolean modal) throws HeadlessException { this(owner, title, modal, null); } public VCIJDialog(Dialog owner, String title, boolean modal) throws HeadlessException { this(owner, title, modal, null); } public VCIJDialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc) { super(owner, title, modal, gc); customConstructor(); } public VCIJDialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc) throws HeadlessException { super(owner, title, modal, gc); customConstructor(); } private void customConstructor(){ setFont(VCISwingUtil.FONT_DEFAULT); } public DialogResult getDialogResult() { return dialogResult; } public void setDialogResult(DialogResult dialogResult) { this.dialogResult = dialogResult; } private Object obj = null; public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; } private Runnable dialogCallback = new Runnable(){public void run(){}}; public Runnable getDialogCallback() { return dialogCallback; } public void setDialogCallback(Runnable dialogCallback) { this.dialogCallback = dialogCallback; } /** * 根据子对话框的大小,绘制子对话框的位置 * @param width,对话框宽度 * @param height,对话框长度 */ public void initDialogSize(int width, int height) { int px = (int)(this.getParent().getLocationOnScreen().getX()); int py = (int)(this.getParent().getLocationOnScreen().getY()); this.setSize(new Dimension(width, height)); int pWidth = this.getParent().getBounds().width; int pHeight = this.getParent().getBounds().height; this.setLocation(px + (pWidth - width) / 2, py + (pHeight - height) / 2); } /** * 根据边距信息确定子对话框的位置 * @param x, 距离父对话框左侧的边距值 * @param y, 距离父对话框上边的边距值 */ public void initDialogSizeByMargin(int x, int y) { int px = (int)(this.getParent().getLocationOnScreen().getX()); int py = (int)(this.getParent().getLocationOnScreen().getY()); int pWidth = this.getParent().getBounds().width; int pHeight = this.getParent().getBounds().height; int width = pWidth - 2 * x; int height = pHeight - 2 * y; this.setSize(new Dimension(width, height)); this.setLocation(px + x, py + y); } /** * 自定义dialog的宽高和位置 * @param width * @param height */ public void setSizeAndLocation(int width, int height) { if(width > 0 && height > 0){ super.setSize(width, height); this.setLocationRelativeTo(null);//设置居中 } } }