devxlogo

Move a Non-modal JDialog Together with its Parent JFrame

Move a Non-modal JDialog Together with its Parent JFrame

The following code allows you to move a non-modal JDialog together with its parent JFrame and vice versa in a Swing application.

//new MovingTogether(jFrame1, jDialog1); ("jFrame1" is a JFrame//and "jDialog1" is a non-modal JDialog with jFrame1 as parent)class MovingTogether extends ComponentAdapter{    public MovingTogether(JFrame winA, JDialog winB){        this.winA = winA;        this.winB = winB;        winA.addComponentListener(this);        winB.addComponentListener(this);    }    public void componentMoved(ComponentEvent e) {        Window win = (Window) e.getComponent();        if(win==winA){            winB.removeComponentListener(this);            winB.setLocationRelativeTo(winA);            winB.addComponentListener(this);        } else if(winB.isVisible())  winA.setLocationRelativeTo(winB);    }    private Window winA, winB;}

devx-admin

Share the Post: