Ai đó có thể hiển thị mã Java Swing/tài nguyên web đơn giản sẽ định vị hộp thoại bật lên ở giữa trên cửa sổ JFrame hiện có khi nút JFrame được nhấp?Java Swing: hộp thoại định vị phía trên cửa sổ hiện có
Trả lời
Oh..it của khá đơn giản:
Giả sử bạn có một JFrame có chứa một JDialog, và bạn muốn JDialog (khi mở) là ngay trên đầu trang của JFrame.
Vì vậy, trong JDialog constructor, bạn nên có một cái gì đó như:
public class MyDialog extends JDialog
public MyDialog(JFrame parent)
{
super.setLocationRelativeTo(parent); // this will do the job
}
Nói cách khác, vượt qua JFrame con trỏ tới hộp thoại của bạn, và gọi setLocationRelativeTo (...); phương pháp.
Bạn đang nói về loại hộp thoại bật lên nào? Nếu bạn đang sử dụng một JOptionPane hoặc một cái gì đó tương tự, thiết lập thành phần cha của nó để JFrame và nó sẽ tự động trung tâm trên đầu trang của cửa sổ JFrame.
JOptionPane.showMessageDialog(frame, "Hello, World!");
Nếu bạn đang tạo JDialog riêng bạn, bạn có thể nhận được vị trí của JFrame sử dụng JFrame.getLocation() và kích thước của nó sử dụng JFrame.getSize(). Toán học khá đơn giản từ đó; chỉ cần tính trung tâm của JFrame và trừ một nửa chiều rộng/chiều cao của JDialog để có góc trên bên trái của hộp thoại của bạn.
Nếu JDialog của bạn chưa được hiển thị, JFrame.getSize() có thể cung cấp cho bạn kích thước bằng không. Trong trường hợp đó, bạn có thể sử dụng JDialog.getPreferredSize() để tìm hiểu xem nó sẽ lớn đến mức nào khi nó được hiển thị trên màn hình.
Nếu bạn muốn có một phương thức và tập trung thoại trên một cửa sổ ...
Trong constructor của hộp thoại:
class CustomDialog extends JDialog {
public CustomDialog(Frame owner, String title, boolean modal) {
super(owner, title, modal);
setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
...
setSize(150, 100);
setLocationRelativeTo(owner);
}
}
Để hiển thị hộp thoại (sử dụng nút, v.v.):
public void actionPerformed(ActionEvent e) {
dialog.setVisible(true);
}
- 1. WPF - Đặt vị trí cửa sổ hộp thoại liên quan đến cửa sổ chính?
- 2. Cửa sổ bật lên trong Java Swing
- 3. Hộp thoại làm cửa sổ chính?
- 4. Định vị hộp thoại jqueryui
- 5. Định vị cửa sổ C#
- 6. Trình nghe Java trên hộp thoại đóng
- 7. Định vị hộp thoại Giao diện người dùng jQuery: điều chỉnh vị trí trên cùng 20px -
- 8. Hộp thoại và cửa sổ bật lên trong Android
- 9. wpf- Application_Startup - cửa sổ tải hộp thoại THEN mainwindow
- 10. Hiển thị hộp thoại jquery trong cửa sổ chính
- 11. Cách nhận màu nền của hộp thoại/cửa sổ?
- 12. Android - MediaController của VideoView trong hộp thoại xuất hiện phía sau hộp thoại
- 13. Làm thế nào tôi có thể ngăn chặn một cửa sổ hộp thoại bị ẩn
- 14. Java setResizable (false) thay đổi kích thước cửa sổ (swing)
- 15. Lớp để định vị một cửa sổ trên màn hình
- 16. Hộp thoại Winform với cửa sổ WPF làm cha mẹ
- 17. WPF hiển thị hộp thoại trước cửa sổ chính
- 18. Cửa sổ Matplotlib xuất hiện ở phía sau?
- 19. Mở cửa sổ phía sau cửa sổ hiện tại bằng cách sử dụng Javascript/jQuery
- 20. Cho các cửa sổ giám sát để hiển thị các hộp thoại trên
- 21. Kiểu hộp danh sách Mục được chọn trên điện thoại cửa sổ
- 22. Giao diện người dùng jQuery DatePicker Mở trên cửa sổ hộp thoại Mở
- 23. Cửa sổ chủ sở hữu WPF phía trên cửa sổ con
- 24. Tôi có thể định vị hộp tin nhắn (Biểu mẫu) của net hoặc các hộp thoại chung không?
- 25. Đặt kích thước tối ưu của cửa sổ hộp thoại có chứa một TableWidget
- 26. Mở hộp thoại mới từ hộp thoại trong qt
- 27. Cách đặt vị trí của cửa sổ WPF?
- 28. cách tạo hộp thoại xác nhận trong cửa sổ điện thoại 7?
- 29. MFC - mờ cửa sổ chính khi hiển thị hộp thoại phương thức
- 30. Hộp thoại tiến trình Swing không bị chặn
Tôi đã không nhận ra phương thức đó đã tồn tại; khá tiện dụng! – rob
Wow, điều này thực sự đã giúp tôi! Chi tiết nhỏ mặc dù ... nó sẽ được gọi chỉ sau khi thiết lập kích thước hộp thoại của bạn, hoặc hộp thoại sẽ xuất hiện với góc trên bên trái của nó tập trung vào cửa sổ cha mẹ. – Nyerguds