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