From f784463ab019c1113cf0b31a249e8802b07a57fa Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期二, 16 十二月 2025 15:26:15 +0800
Subject: [PATCH] 保存地图最后位置
---
src/set/Sets.java | 177 ++++++++++++++++++-----------------------------------------
1 files changed, 54 insertions(+), 123 deletions(-)
diff --git a/src/set/Sets.java b/src/set/Sets.java
index deaacd8..1529e53 100644
--- a/src/set/Sets.java
+++ b/src/set/Sets.java
@@ -4,6 +4,8 @@
import zhuye.MapRenderer;
import zhuye.Shouye;
+import zhuye.buttonset;
+import set.Setsys;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
@@ -42,7 +44,6 @@
private JButton baseStationIdEditBtn;
private JButton handheldEditBtn;
private JButton checkUpdateBtn;
- private JButton systemDebugButton;
private JButton feedbackButton;
private JButton idleTrailEditBtn;
@@ -151,7 +152,6 @@
addRowWithSpacing(panel, idleTrailPanel);
addRowWithSpacing(panel, feedbackPanel);
addRowWithSpacing(panel, appVersionPanel);
- panel.add(createDebugPanel());
return panel;
}
@@ -250,28 +250,8 @@
gbc.anchor = GridBagConstraints.EAST;
panel.add(appVersionLabel, gbc);
- checkUpdateBtn = new JButton("妫�鏌ユ洿鏂�");
- checkUpdateBtn.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
- checkUpdateBtn.setBackground(THEME_COLOR);
- checkUpdateBtn.setForeground(Color.WHITE);
- checkUpdateBtn.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 20));
- checkUpdateBtn.setPreferredSize(new Dimension(100, 28));
- checkUpdateBtn.setMinimumSize(new Dimension(100, 28));
- checkUpdateBtn.setMaximumSize(new Dimension(100, 28));
- checkUpdateBtn.setFocusPainted(false);
-
- checkUpdateBtn.addMouseListener(new MouseAdapter() {
- public void mouseEntered(MouseEvent e) {
- checkUpdateBtn.setBackground(new Color(
- Math.max(THEME_COLOR.getRed() - 20, 0),
- Math.max(THEME_COLOR.getGreen() - 20, 0),
- Math.max(THEME_COLOR.getBlue() - 20, 0)
- ));
- }
- public void mouseExited(MouseEvent e) {
- checkUpdateBtn.setBackground(THEME_COLOR);
- }
- });
+ checkUpdateBtn = buttonset.createStyledButton("妫�鏌ユ洿鏂�", THEME_COLOR);
+ checkUpdateBtn.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
gbc = new GridBagConstraints();
gbc.gridx = 2;
@@ -283,62 +263,6 @@
return panel;
}
- private JPanel createDebugPanel() {
- JPanel panel = new JPanel(new GridBagLayout());
- panel.setBackground(PANEL_BACKGROUND);
- panel.setAlignmentX(Component.LEFT_ALIGNMENT);
- panel.setMaximumSize(new Dimension(Integer.MAX_VALUE, ROW_HEIGHT));
- panel.setPreferredSize(new Dimension(Integer.MAX_VALUE, ROW_HEIGHT));
- panel.setMinimumSize(new Dimension(0, ROW_HEIGHT));
-
- GridBagConstraints gbc = new GridBagConstraints();
-
- JLabel titleLabel = new JLabel("绯荤粺璋冭瘯");
- titleLabel.setFont(new Font("寰蒋闆呴粦", Font.BOLD, 14));
- titleLabel.setForeground(Color.BLACK);
- titleLabel.setHorizontalAlignment(SwingConstants.RIGHT);
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.weightx = 0;
- gbc.anchor = GridBagConstraints.EAST;
- gbc.insets = new Insets(0, 0, 0, 12);
- panel.add(titleLabel, gbc);
-
- systemDebugButton = new JButton("绯荤粺璋冭瘯");
- systemDebugButton.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
- systemDebugButton.setBackground(new Color(
- Math.max(THEME_COLOR.getRed() - 20, 0),
- Math.max(THEME_COLOR.getGreen() - 20, 0),
- Math.max(THEME_COLOR.getBlue() - 20, 0)));
- systemDebugButton.setForeground(Color.WHITE);
- systemDebugButton.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 20));
- systemDebugButton.setPreferredSize(new Dimension(100, 28));
- systemDebugButton.setMinimumSize(new Dimension(100, 28));
- systemDebugButton.setMaximumSize(new Dimension(100, 28));
- systemDebugButton.setFocusPainted(false);
-
- systemDebugButton.addMouseListener(new MouseAdapter() {
- public void mouseEntered(MouseEvent e) {
- systemDebugButton.setBackground(THEME_COLOR);
- }
- public void mouseExited(MouseEvent e) {
- systemDebugButton.setBackground(new Color(
- Math.max(THEME_COLOR.getRed() - 20, 0),
- Math.max(THEME_COLOR.getGreen() - 20, 0),
- Math.max(THEME_COLOR.getBlue() - 20, 0)));
- }
- });
-
- gbc = new GridBagConstraints();
- gbc.gridx = 1;
- gbc.gridy = 0;
- gbc.weightx = 1.0;
- gbc.anchor = GridBagConstraints.EAST;
- panel.add(systemDebugButton, gbc);
-
- return panel;
- }
-
private JPanel createFeedbackPanel() {
JPanel panel = new JPanel(new GridBagLayout());
panel.setBackground(PANEL_BACKGROUND);
@@ -360,30 +284,8 @@
gbc.insets = new Insets(0, 0, 0, 12);
panel.add(titleLabel, gbc);
- feedbackButton = new JButton("鍙嶉");
+ feedbackButton = buttonset.createStyledButton("鍙嶉", THEME_COLOR);
feedbackButton.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
- feedbackButton.setBackground(THEME_COLOR);
- feedbackButton.setForeground(Color.WHITE);
- feedbackButton.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 20));
- feedbackButton.setPreferredSize(new Dimension(100, 28));
- feedbackButton.setMinimumSize(new Dimension(100, 28));
- feedbackButton.setMaximumSize(new Dimension(100, 28));
- feedbackButton.setFocusPainted(false);
-
- feedbackButton.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseEntered(MouseEvent e) {
- feedbackButton.setBackground(new Color(
- Math.max(THEME_COLOR.getRed() - 20, 0),
- Math.max(THEME_COLOR.getGreen() - 20, 0),
- Math.max(THEME_COLOR.getBlue() - 20, 0)));
- }
-
- @Override
- public void mouseExited(MouseEvent e) {
- feedbackButton.setBackground(THEME_COLOR);
- }
- });
gbc = new GridBagConstraints();
gbc.gridx = 1;
@@ -432,6 +334,48 @@
setData.initializeFromProperties();
baseStation.load();
updateDisplay();
+ // 鍔犺浇骞跺簲鐢ㄤ笂娆′繚瀛樼殑瑙嗗浘涓績鍧愭爣
+ loadViewCenterFromProperties();
+ }
+
+ /**
+ * 浠庨厤缃枃浠跺姞杞借鍥句腑蹇冨潗鏍囧苟搴旂敤鍒癕apRenderer
+ */
+ private void loadViewCenterFromProperties() {
+ Shouye shouye = Shouye.getInstance();
+ if (shouye == null) {
+ return;
+ }
+ MapRenderer renderer = shouye.getMapRenderer();
+ if (renderer == null) {
+ return;
+ }
+
+ // 浠庨厤缃枃浠惰鍙栬鍥句腑蹇冨潗鏍�
+ String viewCenterXValue = Setsys.getPropertyValue("viewCenterX");
+ String viewCenterYValue = Setsys.getPropertyValue("viewCenterY");
+
+ double savedTranslateX = 0.0;
+ double savedTranslateY = 0.0;
+
+ if (viewCenterXValue != null && !viewCenterXValue.trim().isEmpty()) {
+ try {
+ savedTranslateX = Double.parseDouble(viewCenterXValue.trim());
+ } catch (NumberFormatException e) {
+ savedTranslateX = 0.0;
+ }
+ }
+ if (viewCenterYValue != null && !viewCenterYValue.trim().isEmpty()) {
+ try {
+ savedTranslateY = Double.parseDouble(viewCenterYValue.trim());
+ } catch (NumberFormatException e) {
+ savedTranslateY = 0.0;
+ }
+ }
+
+ // 搴旂敤瑙嗗浘涓績鍧愭爣锛堜繚鎸佸綋鍓嶇缉鏀炬瘮渚嬶級
+ double currentScale = renderer.getScale();
+ renderer.setViewTransform(currentScale, savedTranslateX, savedTranslateY);
}
private void updateDisplay() {
@@ -528,10 +472,6 @@
feedbackButton.addActionListener(e -> showFeedbackDialog());
}
- if (systemDebugButton != null) {
- systemDebugButton.addActionListener(e -> openSystemDebugDialog());
- }
-
if (idleTrailEditBtn != null) {
idleTrailEditBtn.addActionListener(e -> editIdleTrailDuration());
}
@@ -715,9 +655,8 @@
photoControls.setAlignmentX(Component.LEFT_ALIGNMENT);
JLabel photoLabel = new JLabel("閫夋嫨鐓х墖锛堟渶澶�6寮狅級锛�");
photoLabel.setFont(new Font("寰蒋闆呴粦", Font.BOLD, 13));
- JButton selectPhotosButton = new JButton("閫夋嫨鐓х墖");
- selectPhotosButton.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
- selectPhotosButton.setFocusPainted(false);
+ JButton selectPhotosButton = buttonset.createStyledButton("閫夋嫨鐓х墖", THEME_COLOR);
+ selectPhotosButton.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
photoControls.add(photoLabel);
photoControls.add(selectPhotosButton);
content.add(photoControls);
@@ -737,13 +676,11 @@
content.add(Box.createRigidArea(new Dimension(0, 20)));
- JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
- JButton cancelButton = new JButton("鏀惧純");
- JButton submitButton = new JButton("鎻愪氦");
- submitButton.setBackground(THEME_COLOR);
- submitButton.setForeground(Color.WHITE);
- submitButton.setFocusPainted(false);
- cancelButton.setFocusPainted(false);
+ JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
+ JButton cancelButton = buttonset.createStyledButton("鏀惧純", new Color(128, 128, 128));
+ cancelButton.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
+ JButton submitButton = buttonset.createStyledButton("鎻愪氦", THEME_COLOR);
+ submitButton.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
buttonPanel.add(cancelButton);
buttonPanel.add(submitButton);
@@ -852,12 +789,6 @@
timer.setRepeats(false);
timer.start();
}
-
- private void openSystemDebugDialog() {
- debug dialog = new debug(this, THEME_COLOR);
- dialog.setLocationRelativeTo(this);
- dialog.setVisible(true);
- }
@Override
public void setVisible(boolean visible) {
--
Gitblit v1.10.0