nieobrotowa granica okna i pozycjonowanie
Jeśli tworzę niezmienne rozmiary JFrame, a Windows Aero jest włączonysetLocation
wydaje się, że nie uwzględnia poprawnie obramowania okna.
W poniższym kodzie oczekiwałbym, że druga ramka zostanie umieszczona na prawo od pierwszej klatki, zamiast tego obramowania nakładają się. Jeśli Aero jest wyłączone lub jeśli usunę połączeniasetResizable
odbywa się to zgodnie z oczekiwaniami.
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);
}
}
Czy robię coś źle, czy jest to błąd? Jak mogę wyświetlać obok siebie 2 nie dające się odczytać okna dialogowe bez nakładania się granic?
Edytuj: dodano zrzuty ekranu (zmieniono także klatkę2 na JDialog zamiast JFrame)
Aero On:
Aero Off:
Aero On, ale można zmieniać rozmiar: