From 8ce07ce9a4034fdc959d280dd38ecb3e05cbe6e1 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期三, 17 十二月 2025 16:40:11 +0800
Subject: [PATCH] 重新设计了障碍物的绘制逻辑

---
 src/zhuye/zijian.java |   73 +++++++++++++++++++++++++++---------
 1 files changed, 55 insertions(+), 18 deletions(-)

diff --git a/src/zhuye/zijian.java b/src/zhuye/zijian.java
index 3241748..dac3806 100644
--- a/src/zhuye/zijian.java
+++ b/src/zhuye/zijian.java
@@ -1,10 +1,18 @@
 package zhuye;
 
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
 import javax.swing.JDialog;
-import javax.swing.JOptionPane;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
 import javax.swing.SwingUtilities;
+import javax.swing.WindowConstants;
+import java.awt.BorderLayout;
+import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Dialog;
 import java.awt.Toolkit;
 import java.awt.Window;
 
@@ -40,28 +48,57 @@
     }
 
     private static void showSelfCheckDialog(Component anchorComponent, Runnable onSelfCheckConfirmed) {
-    Component parent = resolveDialogParent(anchorComponent);
-    Object[] options = {"绔嬪嵆鑷", "鍙栨秷"};
-    String message = "<html>鍓茶崏鍓嶈鍏堝畬鎴愬鍓茶崏鏈虹殑鑷鎿嶄綔銆�<br>閬ユ帶鍓茶崏鏈哄悜鍓嶅紑绾�2绫筹紝鐒跺悗鍘熷湴杞湀瀹屾垚鑷鍔熻兘銆�</html>";
+        Component parent = resolveDialogParent(anchorComponent);
+        Window owner = parent instanceof Window
+                ? (Window) parent
+                : SwingUtilities.getWindowAncestor(parent);
 
-    JOptionPane optionPane = new JOptionPane(
-        message,
-        JOptionPane.INFORMATION_MESSAGE,
-        JOptionPane.DEFAULT_OPTION,
-        null,
-        options,
-        options[0]);
+        final JDialog dialog = owner != null
+                ? new JDialog(owner, "鑷鎻愮ず", Dialog.ModalityType.APPLICATION_MODAL)
+                : new JDialog((Window) null, "鑷鎻愮ず", Dialog.ModalityType.APPLICATION_MODAL);
+        dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+        dialog.setResizable(false);
 
-    JDialog dialog = optionPane.createDialog(parent, "鑷鎻愮ず");
-    dialog.pack();
-    applyTargetWidth(anchorComponent, dialog);
-    dialog.setLocationRelativeTo(parent instanceof Component ? (Component) parent : null);
-    dialog.setVisible(true);
+        String message = "<html>鎿嶄綔鍓茶崏鍓嶈鍏堝畬鎴愬鍓茶崏鏈虹殑鑷鎿嶄綔銆�<br>閬ユ帶鍓茶崏鏈哄悜鍓嶅紑绾�2绫筹紝鐒跺悗鍘熷湴杞湀瀹屾垚鑷鍔熻兘銆�</html>";
 
-        Object selectedValue = optionPane.getValue();
+        JPanel contentPanel = new JPanel(new BorderLayout(0, 20));
+        contentPanel.setBorder(BorderFactory.createEmptyBorder(24, 24, 24, 24));
+        contentPanel.setBackground(Color.WHITE);
+
+        JLabel messageLabel = new JLabel(message);
+        messageLabel.setForeground(new Color(60, 60, 60));
+        contentPanel.add(messageLabel, BorderLayout.CENTER);
+
+        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 18, 0));
+        buttonPanel.setOpaque(false);
+
+        JButton confirmButton = buttonset.createStyledButton("绔嬪嵆鑷", new Color(46, 139, 87));
+        JButton cancelButton = buttonset.createStyledButton("鍙栨秷", new Color(128, 128, 128));
+
+        final boolean[] confirmedHolder = {false};
+
+        confirmButton.addActionListener(e -> {
+            confirmedHolder[0] = true;
+            dialog.dispose();
+        });
+        cancelButton.addActionListener(e -> {
+            confirmedHolder[0] = false;
+            dialog.dispose();
+        });
+
+        buttonPanel.add(confirmButton);
+        buttonPanel.add(cancelButton);
+
+        contentPanel.add(buttonPanel, BorderLayout.SOUTH);
+
+        dialog.setContentPane(contentPanel);
+        dialog.pack();
+        applyTargetWidth(anchorComponent, dialog);
+        dialog.setLocationRelativeTo(owner);
+        dialog.setVisible(true);
         dialog.dispose();
 
-        boolean confirmed = options[0].equals(selectedValue);
+        boolean confirmed = confirmedHolder[0];
         if (confirmed) {
             selfCheckCompleted = true;
             if (onSelfCheckConfirmed != null) {

--
Gitblit v1.10.0