Si creo JFrames no modificables, y Windows Aero está habilitado setLocation
no parece tener en cuenta correctamente el borde de la ventana.borde de ventana no redimensionable y posicionamiento
En el siguiente código, esperaría que el segundo fotograma se coloque a la derecha del primer fotograma, en cambio los bordes se superponen. Si Aero está desactivado o si elimino las llamadas al setResizable
, esto se hace como se esperaba.
import java.awt.Rectangle;
import javax.swing.JFrame;
public class FrameBorders {
public static void main(String[] args) {
JFrame frame1 = new JFrame("frame 1");
JFrame frame2 = new JFrame("frame 2");
frame1.setResizable(false);
frame2.setResizable(false);
frame1.setVisible(true);
Rectangle bounds = frame1.getBounds();
frame2.setLocation(bounds.x+bounds.width, bounds.y);
frame2.setVisible(true);
}
}
¿Estoy haciendo algo mal o es esto un error? ¿Cómo puedo mostrar dos cuadros de diálogo no ajustables uno al lado del otro sin tener bordes superpuestos?
Edit: añadido imágenes (también cambiaron Frame2 a un JDialog en lugar de un JFrame)
Aero En:
Aero Off:
Aero En pero de tamaño variable:
¿Por qué desea mostrar 2 laterales diálogos unresizable al lado del otro sin tener fronteras se superponen? –
Quiero mostrar 2 ventanas que inicialmente se encuentran una al lado de la otra – msam
No establezca límites arbitrarios en un contenedor que no se puede cambiar de tamaño. Ver [* El uso de múltiples JFrames, Buena/Mala práctica *] (http://stackoverflow.com/a/9554657/230513)? – trashgod