From 03b0fb0ba2de86bcfff277778826547c0e37a93f Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期四, 20 十一月 2025 23:52:51 +0800
Subject: [PATCH] 优化修改

---
 src/xitongshezhi/canshushezhi.java |  236 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 110 insertions(+), 126 deletions(-)

diff --git a/src/xitongshezhi/canshushezhi.java b/src/xitongshezhi/canshushezhi.java
index c894d24..0b41142 100644
--- a/src/xitongshezhi/canshushezhi.java
+++ b/src/xitongshezhi/canshushezhi.java
@@ -17,12 +17,14 @@
     private static final int SCREEN_WIDTH = 600;
     private static final int SCREEN_HEIGHT = 1024;
     
-    // 棰滆壊甯搁噺 - 浣跨敤涓嶉�忔槑棰滆壊
+    // 棰滆壊瀹氫箟 - 浣跨敤mimaguanli.java涓殑棰滆壊鏂规
+    private static final Color BACKGROUND_COLOR = new Color(15, 28, 48);
+    private static final Color CARD_COLOR = new Color(26, 43, 68);
     private static final Color PRIMARY_COLOR = new Color(52, 152, 219);
     private static final Color SECONDARY_COLOR = new Color(46, 204, 113);
-    private static final Color DARK_COLOR = new Color(15, 28, 48);
-    private static final Color DARK_LIGHT_COLOR = new Color(26, 43, 68);
     private static final Color TEXT_COLOR = new Color(224, 224, 224);
+    private static final Color TEXT_LIGHT_COLOR = new Color(160, 200, 255);
+    private static final Color FIELD_BACKGROUND = new Color(240, 240, 240);
     
     // UI缁勪欢
     private JPanel mainPanel;
@@ -58,10 +60,10 @@
             e.printStackTrace();
         }
         
-        // 鍒涘缓涓婚潰鏉� - 涓嶉�忔槑鑳屾櫙
+        // 鍒涘缓涓婚潰鏉� - 浣跨敤mimaguanli鐨勮儗鏅壊
         mainPanel = new JPanel();
         mainPanel.setLayout(new BorderLayout());
-        mainPanel.setBackground(DARK_COLOR);
+        mainPanel.setBackground(BACKGROUND_COLOR);
         mainPanel.setOpaque(true);
         mainPanel.setBorder(new EmptyBorder(12, 12, 12, 12));
         
@@ -82,14 +84,18 @@
         titleLabel.setFont(new Font("Microsoft YaHei", Font.BOLD, 22));
         titleLabel.setForeground(TEXT_COLOR);
         
-        // 鍏抽棴鎸夐挳
+        // 鍏抽棴鎸夐挳 - 浣跨敤mimaguanli鐨勬寜閽牱寮�
         JButton backButton = new JButton("鍏抽棴");
         backButton.setFont(new Font("Microsoft YaHei", Font.PLAIN, 14));
         backButton.setBackground(PRIMARY_COLOR);
         backButton.setForeground(Color.WHITE);
         backButton.setOpaque(true);
         backButton.setFocusPainted(false);
-        backButton.setBorder(BorderFactory.createEmptyBorder(8, 16, 8, 16));
+        backButton.setBorder(BorderFactory.createCompoundBorder(
+            BorderFactory.createLineBorder(new Color(40, 120, 180), 1),
+            BorderFactory.createEmptyBorder(8, 16, 8, 16)
+        ));
+        backButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
         backButton.addActionListener(e -> dispose());
         
         // 鍏抽棴鎸夐挳鎮仠鏁堟灉
@@ -130,12 +136,14 @@
         scrollPane.setOpaque(false);
         scrollPane.getViewport().setOpaque(false);
         
-        // 鍩烘湰鍙傛暟璁剧疆鍗$墖
-        settingsPanel.add(createBasicSettingsCard());
-        settingsPanel.add(Box.createRigidArea(new Dimension(0, 12)));
+        // 鑷畾涔夋粴鍔ㄦ潯
+        JScrollBar verticalScrollBar = scrollPane.getVerticalScrollBar();
+        verticalScrollBar.setBackground(CARD_COLOR);
+        verticalScrollBar.setForeground(PRIMARY_COLOR);
+        verticalScrollBar.setUnitIncrement(20);
         
-        // 璁惧鍙傛暟璁剧疆鍗$墖
-        settingsPanel.add(createDeviceSettingsCard());
+        // 鍚堝苟鐨勫弬鏁拌缃崱鐗�
+        settingsPanel.add(createMergedSettingsCard());
         settingsPanel.add(Box.createRigidArea(new Dimension(0, 12)));
         
         // 淇濆瓨鎸夐挳
@@ -148,172 +156,148 @@
         return container;
     }
     
-    private JPanel createBasicSettingsCard() {
+    private JPanel createMergedSettingsCard() {
         JPanel card = new JPanel();
         card.setLayout(new BorderLayout());
-        card.setBackground(DARK_LIGHT_COLOR);
+        card.setBackground(CARD_COLOR);
         card.setOpaque(true);
         card.setBorder(BorderFactory.createCompoundBorder(
-            BorderFactory.createLineBorder(new Color(52, 152, 219, 128)),
-            BorderFactory.createEmptyBorder(15, 15, 15, 15)
+            BorderFactory.createLineBorder(new Color(52, 152, 219, 100), 1),
+            BorderFactory.createEmptyBorder(20, 20, 20, 20)
         ));
         
-        // 鍗″ご
-        JPanel cardHeader = new JPanel(new BorderLayout());
-        cardHeader.setOpaque(false);
-        
-        JLabel titleLabel = new JLabel("鍩烘湰鍙傛暟璁剧疆");
-        titleLabel.setFont(new Font("Microsoft YaHei", Font.BOLD, 16));
-        titleLabel.setForeground(TEXT_COLOR);
-        
-        cardHeader.add(titleLabel, BorderLayout.WEST);
-        card.add(cardHeader, BorderLayout.NORTH);
-        
-        // 琛ㄥ崟鍐呭 - 浣跨敤缃戞牸甯冨眬瀹炵幇鏍囩鍦ㄥ乏锛屾枃鏈鍦ㄥ彸
-        // 璋冩暣琛岄珮涓�80鍍忕礌锛屼负60鍍忕礌楂樼殑缁勪欢鎻愪緵瓒冲鐨勯棿璺�
-        JPanel formPanel = new JPanel(new GridLayout(3, 2, 10, 20));
+        // 琛ㄥ崟鍐呭 - 浣跨敤姘村钩甯冨眬瀹炵幇鏍囩鍦ㄥ乏锛屾枃鏈鍦ㄥ彸
+        JPanel formPanel = new JPanel();
+        formPanel.setLayout(new BoxLayout(formPanel, BoxLayout.Y_AXIS));
         formPanel.setOpaque(false);
-        formPanel.setBorder(new EmptyBorder(15, 0, 0, 0));
         
         // 鍙戝崱鏈虹紪鍙�
-        JLabel deviceIdLabel = new JLabel("鍙戝崱鏈虹紪鍙�:");
-        deviceIdLabel.setFont(new Font("Microsoft YaHei", Font.BOLD, 13));
-        deviceIdLabel.setForeground(TEXT_COLOR);
-        formPanel.add(deviceIdLabel);
-        
-        deviceIdField = new JTextField();
-        styleFormField(deviceIdField);
-        formPanel.add(deviceIdField);
+        formPanel.add(createHorizontalField("鍙戝崱鏈虹紪鍙�:", deviceIdField = new JTextField()));
+        formPanel.add(Box.createRigidArea(new Dimension(0, 18)));
         
         // 鏈嶅姟鍣ㄥ湴鍧�
-        JLabel serverAddressLabel = new JLabel("鏈嶅姟鍣ㄥ湴鍧�:");
-        serverAddressLabel.setFont(new Font("Microsoft YaHei", Font.BOLD, 13));
-        serverAddressLabel.setForeground(TEXT_COLOR);
-        formPanel.add(serverAddressLabel);
-        
-        serverAddressField = new JTextField();
-        styleFormField(serverAddressField);
-        formPanel.add(serverAddressField);
+        formPanel.add(createHorizontalField("鏈嶅姟鍣ㄥ湴鍧�:", serverAddressField = new JTextField()));
+        formPanel.add(Box.createRigidArea(new Dimension(0, 18)));
         
         // 鏈嶅姟鍣ㄧ鍙�
-        JLabel serverPortLabel = new JLabel("鏈嶅姟鍣ㄧ鍙�:");
-        serverPortLabel.setFont(new Font("Microsoft YaHei", Font.BOLD, 13));
-        serverPortLabel.setForeground(TEXT_COLOR);
-        formPanel.add(serverPortLabel);
+        formPanel.add(createHorizontalField("鏈嶅姟鍣ㄧ鍙�:", serverPortField = new JTextField()));
+        formPanel.add(Box.createRigidArea(new Dimension(0, 18)));
         
-        serverPortField = new JTextField();
-        styleFormField(serverPortField);
-        formPanel.add(serverPortField);
+        // 鍗℃Ы鎬绘暟
+        formPanel.add(createHorizontalField("鍗℃Ы鎬绘暟:", slotCountField = new JTextField()));
+        formPanel.add(Box.createRigidArea(new Dimension(0, 18)));
+        
+        // 璇诲崱鍙锋ā寮�
+        formPanel.add(createHorizontalComboBoxField("璇诲崱鍙锋ā寮�:", readModeComboBox = new JComboBox<>(new String[]{"涓诲姩妯″紡", "琚姩妯″紡"})));
         
         card.add(formPanel, BorderLayout.CENTER);
         
         return card;
     }
     
-    private JPanel createDeviceSettingsCard() {
-        JPanel card = new JPanel();
-        card.setLayout(new BorderLayout());
-        card.setBackground(DARK_LIGHT_COLOR);
-        card.setOpaque(true);
-        card.setBorder(BorderFactory.createCompoundBorder(
-            BorderFactory.createLineBorder(new Color(52, 152, 219, 128)),
-            BorderFactory.createEmptyBorder(15, 15, 15, 15)
+    private JPanel createHorizontalField(String labelText, JTextField textField) {
+        JPanel panel = new JPanel(new BorderLayout());
+        panel.setBackground(CARD_COLOR);
+        panel.setMaximumSize(new Dimension(SCREEN_WIDTH - 100, 50));
+        
+        // 鏍囩
+        JLabel label = new JLabel(labelText);
+        label.setFont(new Font("Microsoft YaHei", Font.BOLD, 14));
+        label.setForeground(TEXT_COLOR);
+        label.setPreferredSize(new Dimension(100, 30));
+        
+        // 鏂囨湰妗嗘牱寮� - 浣跨敤mimaguanli鐨勬牱寮�
+        textField.setBackground(FIELD_BACKGROUND);
+        textField.setForeground(Color.BLACK);
+        textField.setBorder(BorderFactory.createCompoundBorder(
+            BorderFactory.createLineBorder(new Color(200, 200, 200), 1),
+            BorderFactory.createEmptyBorder(10, 12, 10, 12)
         ));
+        textField.setFont(new Font("Microsoft YaHei", Font.PLAIN, 14));
+        textField.setOpaque(true);
+        textField.setPreferredSize(new Dimension(280, 42));
         
-        // 鍗″ご
-        JPanel cardHeader = new JPanel(new BorderLayout());
-        cardHeader.setOpaque(false);
+        // 鍒涘缓姘村钩甯冨眬瀹瑰櫒
+        JPanel horizontalPanel = new JPanel(new BorderLayout());
+        horizontalPanel.setBackground(CARD_COLOR);
+        horizontalPanel.setMaximumSize(new Dimension(SCREEN_WIDTH - 100, 50));
         
-        JLabel titleLabel = new JLabel("璁惧鍙傛暟璁剧疆");
-        titleLabel.setFont(new Font("Microsoft YaHei", Font.BOLD, 16));
-        titleLabel.setForeground(TEXT_COLOR);
+        horizontalPanel.add(label, BorderLayout.WEST);
+        horizontalPanel.add(textField, BorderLayout.CENTER);
         
-        cardHeader.add(titleLabel, BorderLayout.WEST);
-        card.add(cardHeader, BorderLayout.NORTH);
+        // 娣诲姞闂磋窛
+        horizontalPanel.setBorder(BorderFactory.createEmptyBorder(5, 0, 5, 0));
         
-        // 琛ㄥ崟鍐呭 - 浣跨敤缃戞牸甯冨眬瀹炵幇鏍囩鍦ㄥ乏锛岃緭鍏ョ粍浠跺湪鍙�
-        // 璋冩暣琛岄珮涓�80鍍忕礌锛屼负60鍍忕礌楂樼殑缁勪欢鎻愪緵瓒冲鐨勯棿璺�
-        JPanel formPanel = new JPanel(new GridLayout(2, 2, 10, 20));
-        formPanel.setOpaque(false);
-        formPanel.setBorder(new EmptyBorder(15, 0, 0, 0));
+        return horizontalPanel;
+    }
+    
+    private JPanel createHorizontalComboBoxField(String labelText, JComboBox<String> comboBox) {
+        JPanel panel = new JPanel(new BorderLayout());
+        panel.setBackground(CARD_COLOR);
+        panel.setMaximumSize(new Dimension(SCREEN_WIDTH - 100, 50));
         
-        // 鍗℃Ы鎬绘暟
-        JLabel slotCountLabel = new JLabel("鍗℃Ы鎬绘暟:");
-        slotCountLabel.setFont(new Font("Microsoft YaHei", Font.BOLD, 13));
-        slotCountLabel.setForeground(TEXT_COLOR);
-        formPanel.add(slotCountLabel);
+        // 鏍囩
+        JLabel label = new JLabel(labelText);
+        label.setFont(new Font("Microsoft YaHei", Font.BOLD, 14));
+        label.setForeground(TEXT_COLOR);
+        label.setPreferredSize(new Dimension(100, 30));
         
-        slotCountField = new JTextField();
-        styleFormField(slotCountField);
-        formPanel.add(slotCountField);
+        // 缁勫悎妗嗘牱寮� - 浣跨敤mimaguanli鐨勬牱寮�
+        comboBox.setBackground(FIELD_BACKGROUND);
+        comboBox.setForeground(Color.BLACK);
+        comboBox.setBorder(BorderFactory.createCompoundBorder(
+            BorderFactory.createLineBorder(new Color(200, 200, 200), 1),
+            BorderFactory.createEmptyBorder(10, 12, 10, 12)
+        ));
+        comboBox.setFont(new Font("Microsoft YaHei", Font.PLAIN, 14));
+        comboBox.setOpaque(true);
+        comboBox.setPreferredSize(new Dimension(280, 42));
         
-        // 璇诲崱鍙锋ā寮�
-        JLabel readModeLabel = new JLabel("璇诲崱鍙锋ā寮�:");
-        readModeLabel.setFont(new Font("Microsoft YaHei", Font.BOLD, 13));
-        readModeLabel.setForeground(TEXT_COLOR);
-        formPanel.add(readModeLabel);
+        // 鍒涘缓姘村钩甯冨眬瀹瑰櫒
+        JPanel horizontalPanel = new JPanel(new BorderLayout());
+        horizontalPanel.setBackground(CARD_COLOR);
+        horizontalPanel.setMaximumSize(new Dimension(SCREEN_WIDTH - 100, 50));
         
-        readModeComboBox = new JComboBox<>(new String[]{"涓诲姩妯″紡", "琚姩妯″紡"});
-        styleComboBox(readModeComboBox);
-        formPanel.add(readModeComboBox);
+        horizontalPanel.add(label, BorderLayout.WEST);
+        horizontalPanel.add(comboBox, BorderLayout.CENTER);
         
-        card.add(formPanel, BorderLayout.CENTER);
+        // 娣诲姞闂磋窛
+        horizontalPanel.setBorder(BorderFactory.createEmptyBorder(5, 0, 5, 0));
         
-        return card;
+        return horizontalPanel;
     }
     
     private JPanel createSaveButton() {
-        JPanel buttonPanel = new JPanel(new BorderLayout());
+        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
         buttonPanel.setOpaque(false);
+        buttonPanel.setBorder(new EmptyBorder(10, 0, 0, 0));
         
         JButton saveButton = new JButton("淇濆瓨鎵�鏈夎缃�");
-        saveButton.setFont(new Font("Microsoft YaHei", Font.BOLD, 16));
-        saveButton.setBackground(SECONDARY_COLOR);
+        saveButton.setFont(new Font("Microsoft YaHei", Font.PLAIN, 14));
+        saveButton.setBackground(PRIMARY_COLOR);
         saveButton.setForeground(Color.WHITE);
         saveButton.setOpaque(true);
         saveButton.setFocusPainted(false);
-        saveButton.setPreferredSize(new Dimension(0, 60)); // 楂樺害鏀逛负60鍍忕礌
-        saveButton.setBorder(BorderFactory.createEmptyBorder(12, 20, 12, 20));
+        saveButton.setBorder(BorderFactory.createCompoundBorder(
+            BorderFactory.createLineBorder(new Color(40, 120, 180), 1),
+            BorderFactory.createEmptyBorder(8, 16, 8, 16)
+        ));
+        saveButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
         saveButton.addActionListener(e -> saveSettings());
         
         // 鎸夐挳鎮仠鏁堟灉
         saveButton.addMouseListener(new java.awt.event.MouseAdapter() {
             public void mouseEntered(java.awt.event.MouseEvent evt) {
-                saveButton.setBackground(brighterColor(SECONDARY_COLOR));
+                saveButton.setBackground(brighterColor(PRIMARY_COLOR));
             }
             
             public void mouseExited(java.awt.event.MouseEvent evt) {
-                saveButton.setBackground(SECONDARY_COLOR);
+                saveButton.setBackground(PRIMARY_COLOR);
             }
         });
         
-        buttonPanel.add(saveButton, BorderLayout.CENTER);
+        buttonPanel.add(saveButton);
         return buttonPanel;
-    }
-    
-    private void styleFormField(JTextField field) {
-        field.setPreferredSize(new Dimension(200, 60)); // 楂樺害鏀逛负60鍍忕礌
-        field.setBackground(Color.WHITE); // 涓嶉�忔槑鐧借壊鑳屾櫙
-        field.setForeground(Color.BLACK); // 榛戣壊鏂囧瓧
-        field.setBorder(BorderFactory.createCompoundBorder(
-            BorderFactory.createLineBorder(new Color(200, 200, 200)),
-            BorderFactory.createEmptyBorder(8, 12, 8, 12)
-        ));
-        field.setFont(new Font("Microsoft YaHei", Font.PLAIN, 13));
-        field.setCaretColor(Color.BLACK);
-        field.setOpaque(true); // 纭繚涓嶉�忔槑
-    }
-    
-    private void styleComboBox(JComboBox<String> comboBox) {
-        comboBox.setPreferredSize(new Dimension(200, 60)); // 楂樺害鏀逛负60鍍忕礌
-        comboBox.setBackground(Color.WHITE); // 涓嶉�忔槑鐧借壊鑳屾櫙
-        comboBox.setForeground(Color.BLACK); // 榛戣壊鏂囧瓧
-        comboBox.setBorder(BorderFactory.createCompoundBorder(
-            BorderFactory.createLineBorder(new Color(200, 200, 200)),
-            BorderFactory.createEmptyBorder(8, 12, 8, 12)
-        ));
-        comboBox.setFont(new Font("Microsoft YaHei", Font.PLAIN, 13));
-        comboBox.setOpaque(true); // 纭繚涓嶉�忔槑
     }
     
     private void initializeData() {

--
Gitblit v1.9.3