张世豪
昨天 00f4e4fc6e53a26cf3dc67d57d8b00536634d707
src/set/Sets.java
@@ -110,6 +110,8 @@
        mainPanel.add(scrollPane, BorderLayout.CENTER);
        
        add(mainPanel, BorderLayout.CENTER);
        setupEventHandlers();
    }
    
    private JPanel createSettingsPanel() {
@@ -903,7 +905,7 @@
        }
        updateDisplay();
        // 加载并应用上次保存的视图中心坐标
        loadViewCenterFromProperties();
        // loadViewCenterFromProperties(); // 移除此调用,避免打开设置页面时重置地图视图
    }
    
    /**
@@ -1066,43 +1068,34 @@
        return trimmed;
    }
    
    private void addActionListenerUnique(JButton button, ActionListener listener) {
        if (button == null) return;
        for (ActionListener al : button.getActionListeners()) {
            button.removeActionListener(al);
        }
        button.addActionListener(listener);
    }
    private void setupEventHandlers() {
        // 割草机编号编辑按钮事件
        if (mowerIdEditBtn != null) {
            mowerIdEditBtn.addActionListener(e -> editMowerId());
        }
        addActionListenerUnique(mowerIdEditBtn, e -> editMowerId());
        // 割草机长宽编辑按钮事件
        if (mowerSizeEditBtn != null) {
            mowerSizeEditBtn.addActionListener(e -> editMowerSize());
        }
        addActionListenerUnique(mowerSizeEditBtn, e -> editMowerSize());
        // 割草安全距离编辑按钮事件
        if (mowingSafetyDistanceEditBtn != null) {
            mowingSafetyDistanceEditBtn.addActionListener(e -> editMowingSafetyDistance());
        }
        addActionListenerUnique(mowingSafetyDistanceEditBtn, e -> editMowingSafetyDistance());
        if (baseStationIdEditBtn != null) {
            baseStationIdEditBtn.addActionListener(e -> editBaseStationId());
        }
        addActionListenerUnique(baseStationIdEditBtn, e -> editBaseStationId());
        
        // 检查更新按钮事件
        if (checkUpdateBtn != null) {
            checkUpdateBtn.addActionListener(e -> checkForUpdates());
        }
        addActionListenerUnique(checkUpdateBtn, e -> checkForUpdates());
        if (handheldEditBtn != null) {
            handheldEditBtn.addActionListener(e -> editHandheldMarkerId());
        }
        addActionListenerUnique(handheldEditBtn, e -> editHandheldMarkerId());
        if (feedbackButton != null) {
            feedbackButton.addActionListener(e -> showFeedbackDialog());
        }
        addActionListenerUnique(feedbackButton, e -> showFeedbackDialog());
        if (idleTrailEditBtn != null) {
            idleTrailEditBtn.addActionListener(e -> editIdleTrailDuration());
        }
        addActionListenerUnique(idleTrailEditBtn, e -> editIdleTrailDuration());
    }
    
    private void editMowerId() {
@@ -1808,7 +1801,6 @@
    @Override
    public void setVisible(boolean visible) {
        if (visible) {
            setupEventHandlers();
            loadData(); // 每次显示时重新加载数据
        }
        super.setVisible(visible);