Tôi hiện đang gặp sự cố với ứng dụng nhắc nhở xoay của mình, có thể giảm thiểu đến khay khi đóng. Vấn đề của tôi ở đây là, tôi cần hộp thoại JOptionPane bật lên theo thời gian theo những gì tôi đặt, nhưng vấn đề ở đây là, khi tôi thu nhỏ nó, hộp thoại sẽ bật lên, nhưng không ở trên cùng của cửa sổ khi ứng dụng khác như explorer, firefox đang chạy, bất cứ ai biết làm thế nào để bật lên hộp thoại trên đầu trang của cửa sổ không có vấn đề gì ứng dụng đang chạy?JOptionPane sẽ không hiển thị hộp thoại của nó trên đầu trang của các cửa sổ khác
Trả lời
Windows đang chặn thao tác này kể từ XP.
Kịch bản trước đây là: Mẹo của bạn trong một số văn bản trong trình chỉnh sửa và không nhận ra rằng một hộp thoại khác đang đến trước khi bạn đang nghiêng văn bản. Hộp thoại sắp tới sẽ lấy tiêu điểm và bạn đang bắt đầu trong hộp thoại mới. Có thể bạn bấm vào sau khi bạn đã sẵn sàng và làm điều này trong hộp thoại sai, mà là yêu cầu xem bạn thực sự muốn xóa đĩa cứng của bạn;)
Cuộc gọi đến trước trong java chỉ hoạt động cho cửa sổ java.
Khả năng thông báo cho người dùng cửa sổ mới là triển khai Khung, sẽ đánh dấu/nhấp nháy trên thanh tác vụ của cửa sổ.
Thay vào đó, bạn có thể nghĩ đến việc sử dụng JFrame. Nó có thể giúp bạn linh hoạt hơn một chút.
Nếu bạn đang sử dụng một JFrame và bạn muốn nó bật lên trên đầu trang của các cửa sổ khác sử dụng:
myFrame.setVisible(true);
myFrame.setState(Frame.NORMAL);
Các setstate sẽ hiển thị cửa sổ để người dùng nếu nó được trong trạng thái giảm thiểu trước đó.
Bạn đang sử dụng một trong những thiết bị tập thể dục đóng hộp chưa? (Giống như JOptionPane.showCOnfirmDialog (...))
Bạn có thể xem xét việc mở rộng JDialog và tạo bảng điều khiển của riêng bạn, sau đó gọi myDialog.setAlwaysOnTop (true);
Correction bài viết ở trên ..
Tôi có giải quyết vấn đề của tôi như sau:
this.setVisible(true); // show main frame
MyDialog dialog = New MyDialog(this, true); // show my custom dialog
dialog.setVisible(true);
this.setVisible(false);
nó hoạt động tốt đối với tôi :)
Tạo một JFrame tương ứng giả có sản phẩm nào, thiết lập nó luôn trên đầu trang và sử dụng nó làm thành phần cho JOptionPane thay vì null. Vì vậy, các JOptionPane vẫn luôn luôn trên đầu trang trên tất cả các cửa sổ khác của một ứng dụng. Bạn cũng có thể xác định nơi JOptionPane xuất hiện trên màn hình với vị trí của JFrame giả.
JFrame frmOpt; //dummy JFrame
private void question() {
if (frmOpt == null) {
frmOpt = new JFrame();
}
frmOpt.setVisible(true);
frmOpt.setLocation(100, 100);
frmOpt.setAlwaysOnTop(true);
String[] options = {"delete", "hide", "break"};
int response = JOptionPane.showOptionDialog(frmOpt, msg, title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, "delete");
if (response == JOptionPane.YES_OPTION) {
removeRow();
}
frmOpt.dispose();
}
Bài đăng cũ, nhưng tôi đã đấu tranh với điều này.
Vấn đề của tôi là nhiều hơn với Javafx cho phép JOptionPane đi phía sau cửa sổ Java hiện tại.
Vì vậy, tôi đã sử dụng những điều sau đây làm những gì mà áp phích ban đầu được yêu cầu bằng cách đặt JOptionPane trước tất cả các cửa sổ; thậm chí là JAVAFX.
Thứ nhất JOptionPane cũ:
JOptionPane.showMessageDialog(null, "Here I am");
Bây giờ một JOptionPane mà vẫn ở phía trước:
final JDialog dialog = new JDialog();
dialog.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(dialog, "Here I am");
Và cho vui ở đây là tất cả mọi thứ trong một dòng dài:
JOptionPane.showMessageDialog(
((Supplier<JDialog>)() -> {final JDialog dialog = new JDialog(); dialog.setAlwaysOnTop(true); return dialog;}).get()
, "Here I am");
Bạn có thể làm cho một phương pháp tĩnh một số nơi mà sẽ trả lại JDialog cho bạn và sau đó chỉ cần gọi nó trong JOptionPan e để làm sạch mã của bạn một chút.
- 1. làm thế nào để hiển thị JOptionPane trên đầu trang của tất cả các cửa sổ
- 2. Hiển thị hộp thoại jquery trong cửa sổ chính
- 3. JOptionPane - chương trình hộp thoại đầu vào
- 4. Cho các cửa sổ giám sát để hiển thị các hộp thoại trên
- 5. Modal Dialog không hiển thị trên các cửa sổ khác
- 6. WPF hiển thị hộp thoại trước cửa sổ chính
- 7. JOptionPane Có hoặc Không có cửa sổ
- 8. JDialog không cần thiết phải hiển thị trên đầu trang của phụ huynh
- 9. Hiển thị hộp thoại để chọn không gian làm việc trong khi nó bắt đầu
- 10. Nhận 'BadTokenException: Không thể thêm cửa sổ' khi cố gắng hiển thị hộp thoại Facebook - Android
- 11. Tại sao trang tính của tôi không được đính kèm vào cửa sổ mà nó chạy?
- 12. Làm thế nào để đặt một cửa sổ tkinter trên đầu trang của những người khác?
- 13. Chrome sẽ không hiển thị video HTML 5 của tôi trên cửa sổ Máy tính (Tôi có Divx)
- 14. Cách nhận màu nền của hộp thoại/cửa sổ?
- 15. Vẽ để xem trực tiếp trên đầu trang của tất cả các cửa sổ
- 16. MFC - mờ cửa sổ chính khi hiển thị hộp thoại phương thức
- 17. bootstrap-modal không hiển thị hộp thoại
- 18. Hộp thoại làm cửa sổ chính?
- 19. Tại sao JScrollPane trong JOptionPane không hiển thị tất cả nội dung của nó?
- 20. WPF: Làm cách nào để đặt Cửa sổ chủ sở hữu của Hộp thoại được hiển thị bởi UserControl?
- 21. Tại sao ứng dụng iOS của tôi không hiển thị trong hộp thoại "Mở trong" của các ứng dụng khác?
- 22. Hiển thị hộp thoại ở trung tâm của phụ huynh
- 23. C/C++/C# SetWindowPos: Cửa sổ trên đầu trang của những người khác
- 24. Hộp thoại cảnh báo không hiển thị
- 25. Hộp thoại hiển thị AngularJS từ routeProvider
- 26. Có cách nào để hiển thị các điều khiển WPF trên đầu trang của điều khiển wpf WebBrowser không?
- 27. Hộp thoại JQuery được hiển thị ngay lập tức trên trang tải
- 28. đảm bảo tiêu đề hiển thị đầy đủ trên JOptionPane
- 29. Hiển thị nội dung của clipboard cửa sổ
- 30. Hộp thoại Facebook Like Button hiển thị trang
Để mở rộng trong nhận xét, điều này thực sự tốt. Sử dụng cái gì đó mở rộng JFrame thay vì một cái gì đó kéo dài JDialog để có được một cái gì đó nhấp nháy trong thanh tác vụ khi bạn gọi mang đến phía trước –