Estou trabalhando com JDesktopPane e JInternalFrame. Para controlar os limites do JInternalFrame (evitar o ‘vazamento’ dento do mdi) eu implementei o seguinte código:
@Override
public void componentMoved(ComponentEvent e) {
if(tela.getX() < 0)
tela.setLocation(0, tela.getY());
if(tela.getY() < 0)
tela.setLocation(tela.getX(), 0);
if((tela.getX() + tela.getWidth()) > this.getWidth())
tela.setLocation(this.getWidth() - tela.getWidth() - 8, tela.getY());
if((tela.getY() + tela.getHeight()) > this.getHeight())
tela.setLocation(tela.getX(), this.getHeight() - tela.getHeight() - 50);
}
onde tela é o meu JInternalFrame…
Desse jeito resolvi o problema, mas gostaria de saber se poderia implementar de outra forma, setando alguma propriedade do desktopPane ou do internalFrame…