Hai ragione, non ci stavo ripensando che effettivamente è proprio quello il comportamento del Desktop.
Ho risolto così:
codice:
private void formComponentMoved(java.awt.event.ComponentEvent evt) {
if (this.getLocation().x < 0) {
this.setLocation(0, this.getLocation().y);
}
if (this.getLocation().y < 0) {
this.setLocation(this.getLocation().x, 0);
}
if(this.getLocation().x>MainWindow.DesktopWorkSx.getSize().width-this.getSize().width){
this.setLocation(MainWindow.DesktopWorkSx.getSize().width-this.getSize().width, this.getLocation().y);
}
if(this.getLocation().y>MainWindow.DesktopWorkSx.getSize().height-this.getSize().height){
this.setLocation(this.getLocation().x, MainWindow.DesktopWorkSx.getSize().height-this.getSize().height);
}
}