Nếu tôi tạo JFrames không thể thay đổi kích thước và cửa sổ Aero được bật setLocation
dường như không tính đến đường viền cửa sổ chính xác.không thể thay đổi kích thước cửa sổ và vị trí
Trong đoạn mã sau, tôi mong đợi khung thứ hai được đặt ở bên phải của khung hình đầu tiên, thay vào đó các đường viền được chồng lên nhau. Nếu Aero bị tắt hoặc nếu tôi xóa các cuộc gọi đến setResizable
, việc này được thực hiện như mong đợi.
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);
}
}
Tôi có làm gì sai hoặc đây là lỗi không? Làm cách nào để hiển thị 2 hộp thoại không thể thay đổi cạnh nhau mà không có đường viền chồng chéo?
Edit: thêm ảnh chụp màn hình (cũng thay đổi frame2 đến một JDialog thay vì một JFrame)
Aero On:
Aero Tắt:
Aero On nhưng thay đổi kích thước:
Tại sao bạn muốn hiển thị 2 unresizable hộp thoại cạnh nhau mà không cần phải biên giới chồng chéo? –
Tôi muốn hiển thị 2 cửa sổ ban đầu được đặt cạnh nhau – msam
Vui lòng không đặt các giới hạn tùy ý trên vùng chứa không thể thay đổi kích thước. Xem [* Việc sử dụng nhiều JFrames, Thực hành tốt/xấu *] (http://stackoverflow.com/a/9554657/230513)? – trashgod