From de75ec84e295c3f952a200897aa22aa73d7d5867 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期一, 15 十二月 2025 19:37:11 +0800
Subject: [PATCH] 新增了串口割草机拖尾和缩放比例保存功能
---
src/zhuye/LegendDialog.java | 73 +++++++++++++++++++++++++++++++-----
1 files changed, 62 insertions(+), 11 deletions(-)
diff --git a/src/zhuye/LegendDialog.java b/src/zhuye/LegendDialog.java
index 40998de..7469b67 100644
--- a/src/zhuye/LegendDialog.java
+++ b/src/zhuye/LegendDialog.java
@@ -8,10 +8,11 @@
public class LegendDialog extends JDialog {
public LegendDialog(Component parent, Color ignoredThemeColor) {
- super(parent != null ? (JFrame) SwingUtilities.getWindowAncestor(parent) : null,
- "鍥句緥", true);
- // 浣跨敤缁熶竴瀹藉害锛岄珮搴︾缉鍑忎负涓�鍗�
- initializeDialog(UIConfig.DIALOG_WIDTH, UIConfig.DIALOG_HEIGHT / 2);
+ super(parent != null ? (JFrame) SwingUtilities.getWindowAncestor(parent) : null,
+ "鍥句緥", true);
+ int adjustedWidth = (int) Math.round(UIConfig.DIALOG_WIDTH * 0.8);
+ int adjustedHeight = (int) Math.round(UIConfig.DIALOG_HEIGHT * 0.4);
+ initializeDialog(adjustedWidth, adjustedHeight);
initializeLegendContent();
if (parent == null) {
setLocationRelativeTo(null); // 灞呬腑鏄剧ず
@@ -31,12 +32,28 @@
mainPanel.setBackground(Color.WHITE);
mainPanel.setBorder(BorderFactory.createEmptyBorder(15, 15, 10, 15));
- // 鏍囬 - 淇敼涓�"鍥句緥"
- JLabel titleLabel = new JLabel("鍥句緥", JLabel.CENTER);
- titleLabel.setFont(new Font("寰蒋闆呴粦", Font.BOLD, 14));
- titleLabel.setForeground(new Color(60, 60, 60));
- titleLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
- mainPanel.add(titleLabel, BorderLayout.NORTH);
+ // 璁$畻鍥句緥鍐呭闈㈡澘鐨勫搴︼紙鐢ㄤ簬璁剧疆鍥炬爣灏哄锛�
+ // 鍥句緥瀵硅瘽妗嗗搴� = DIALOG_WIDTH * 0.8
+ // 涓婚潰鏉垮乏鍙宠竟妗嗗悇15鍍忕礌锛屽浘渚嬪唴瀹归潰鏉垮乏鍙冲唴杈硅窛鍚�10鍍忕礌
+ int adjustedWidth = (int) Math.round(UIConfig.DIALOG_WIDTH * 0.8);
+ int iconSize = adjustedWidth - 30 - 20; // 鍑忓幓涓婚潰鏉垮乏鍙宠竟妗�(15*2)鍜屽浘渚嬪唴瀹归潰鏉垮乏鍙冲唴杈硅窛(10*2)
+
+ // 鍒涘缓鍓茶崏鏈哄浘鏍囬潰鏉�
+ JPanel iconPanel = new JPanel(new BorderLayout());
+ iconPanel.setBackground(Color.WHITE);
+ iconPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); // 搴曢儴闂磋窛10鍍忕礌
+
+ JLabel gecaojiLabel = new JLabel();
+ gecaojiLabel.setHorizontalAlignment(SwingConstants.CENTER);
+ ImageIcon gecaojiIcon = loadIcon("image/gecaoji.png", iconSize, iconSize);
+ if (gecaojiIcon != null) {
+ gecaojiLabel.setIcon(gecaojiIcon);
+ } else {
+ // 濡傛灉鍥炬爣鍔犺浇澶辫触锛屾樉绀哄崰浣嶆枃鏈�
+ gecaojiLabel.setText("鍓茶崏鏈哄浘鏍�");
+ gecaojiLabel.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 12));
+ }
+ iconPanel.add(gecaojiLabel, BorderLayout.CENTER);
// 鍥句緥鍐呭闈㈡澘 - 鐩存帴娣诲姞锛屼笉浣跨敤婊氬姩鏉�
JPanel contentPanel = new JPanel();
@@ -67,7 +84,8 @@
contentPanel.remove(contentPanel.getComponentCount() - 1);
}
- // 鐩存帴娣诲姞鍐呭闈㈡澘锛屼笉浣跨敤婊氬姩鏉�
+ // 娣诲姞鍥炬爣闈㈡澘鍜屽浘渚嬪唴瀹归潰鏉�
+ mainPanel.add(iconPanel, BorderLayout.NORTH);
mainPanel.add(contentPanel, BorderLayout.CENTER);
getContentPane().add(mainPanel);
@@ -160,4 +178,37 @@
return itemPanel;
}
+
+ /**
+ * 鍔犺浇骞剁缉鏀惧浘鏍�
+ * @param iconPath 鍥炬爣璺緞
+ * @param width 鐩爣瀹藉害
+ * @param height 鐩爣楂樺害
+ * @return 缂╂斁鍚庣殑鍥炬爣
+ */
+ private ImageIcon loadIcon(String iconPath, int width, int height) {
+ try {
+ java.net.URL imgURL = getClass().getClassLoader().getResource(iconPath);
+ if (imgURL == null) {
+ // 灏濊瘯浠庢枃浠剁郴缁熷姞杞�
+ java.io.File imgFile = new java.io.File(iconPath);
+ if (imgFile.exists()) {
+ ImageIcon originalIcon = new ImageIcon(imgFile.getAbsolutePath());
+ Image scaledImage = originalIcon.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH);
+ ImageIcon scaledIcon = new ImageIcon(scaledImage);
+ scaledIcon.setDescription(iconPath);
+ return scaledIcon;
+ }
+ } else {
+ ImageIcon originalIcon = new ImageIcon(imgURL);
+ Image scaledImage = originalIcon.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH);
+ ImageIcon scaledIcon = new ImageIcon(scaledImage);
+ scaledIcon.setDescription(iconPath);
+ return scaledIcon;
+ }
+ } catch (Exception e) {
+ System.err.println("鏃犳硶鍔犺浇鍥炬爣: " + iconPath + " - " + e.getMessage());
+ }
+ return null;
+ }
}
\ No newline at end of file
--
Gitblit v1.10.0