From b518f895dec5264fd25e22a68300c40ceba6f43d Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期六, 20 十二月 2025 15:30:20 +0800
Subject: [PATCH] 新增了按钮功能
---
src/zhuye/Lookbutton.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 107 insertions(+), 0 deletions(-)
diff --git a/src/zhuye/Lookbutton.java b/src/zhuye/Lookbutton.java
new file mode 100644
index 0000000..aebfb9e
--- /dev/null
+++ b/src/zhuye/Lookbutton.java
@@ -0,0 +1,107 @@
+package zhuye;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
+/**
+ * 鏌ョ湅鎸夐挳宸ュ叿绫�
+ * 鎻愪緵缁熶竴鐨勬煡鐪嬫寜閽垱寤烘柟娉曪紝榛樿鏄剧ず鏌ョ湅鍥炬爣锛岀偣鍑绘寜閽墽琛屽搴旂殑鎿嶄綔
+ */
+public final class Lookbutton {
+
+ // 榛樿鍥炬爣澶у皬
+ private static final int DEFAULT_ICON_SIZE =25;
+
+ private Lookbutton() {
+ // 宸ュ叿绫讳笉闇�瑕佸疄渚嬪寲
+ }
+
+ /**
+ * 鍒涘缓鏌ョ湅鎸夐挳
+ * 榛樿鏄剧ず image/look.png 鍥炬爣锛岀偣鍑绘寜閽墽琛屼紶鍏ョ殑鎿嶄綔
+ *
+ * @param listener 鎸夐挳鐐瑰嚮浜嬩欢鐩戝惉鍣紝褰撴寜閽鐐瑰嚮鏃舵墽琛�
+ * @param hoverColor 榧犳爣鎮仠鏃剁殑鑳屾櫙棰滆壊锛堝鏋滀负null锛屼娇鐢ㄩ粯璁ら鑹诧級
+ * @return 閰嶇疆濂界殑鏌ョ湅鎸夐挳
+ */
+ public static JButton createViewButton(ActionListener listener, Color hoverColor) {
+ JButton viewButton = new JButton();
+
+ // 鍔犺浇鍥炬爣
+ ImageIcon lookIcon = loadIcon("image/look.png", DEFAULT_ICON_SIZE, DEFAULT_ICON_SIZE);
+
+ // 璁剧疆鎸夐挳鍥炬爣
+ if (lookIcon != null) {
+ viewButton.setIcon(lookIcon);
+ } else {
+ viewButton.setText("鏌ョ湅");
+ }
+
+ // 璁剧疆鎸夐挳鏍峰紡
+ viewButton.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 11));
+ viewButton.setForeground(new Color(46, 139, 87)); // PRIMARY_COLOR
+ viewButton.setBorder(BorderFactory.createEmptyBorder());
+ viewButton.setContentAreaFilled(false);
+ viewButton.setFocusPainted(false);
+ viewButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
+
+ // 璁剧疆鎻愮ず鏂囨湰涓�"鐐瑰嚮鏌ョ湅"
+ viewButton.setToolTipText("鐐瑰嚮鏌ョ湅");
+
+ // 璁剧疆鎮仠鏁堟灉
+ final Color finalHoverColor = hoverColor != null ? hoverColor : new Color(230, 250, 240);
+ viewButton.addMouseListener(new MouseAdapter() {
+ public void mouseEntered(MouseEvent e) {
+ viewButton.setOpaque(true);
+ viewButton.setBackground(finalHoverColor);
+ }
+
+ public void mouseExited(MouseEvent e) {
+ viewButton.setOpaque(false);
+ }
+ });
+
+ // 娣诲姞鐐瑰嚮浜嬩欢
+ if (listener != null) {
+ viewButton.addActionListener(listener);
+ }
+
+ return viewButton;
+ }
+
+ /**
+ * 鍒涘缓鏌ョ湅鎸夐挳锛堜娇鐢ㄩ粯璁ゆ偓鍋滈鑹诧級
+ *
+ * @param listener 鎸夐挳鐐瑰嚮浜嬩欢鐩戝惉鍣紝褰撴寜閽鐐瑰嚮鏃舵墽琛�
+ * @return 閰嶇疆濂界殑鏌ョ湅鎸夐挳
+ */
+ public static JButton createViewButton(ActionListener listener) {
+ return createViewButton(listener, null);
+ }
+
+ /**
+ * 鍔犺浇鍥炬爣骞惰皟鏁村ぇ灏�
+ *
+ * @param path 鍥炬爣璺緞
+ * @param width 鐩爣瀹藉害
+ * @param height 鐩爣楂樺害
+ * @return 璋冩暣澶у皬鍚庣殑鍥炬爣锛屽鏋滃姞杞藉け璐ヨ繑鍥瀗ull
+ */
+ private static ImageIcon loadIcon(String path, int width, int height) {
+ try {
+ ImageIcon rawIcon = new ImageIcon(path);
+ if (rawIcon.getIconWidth() <= 0 || rawIcon.getIconHeight() <= 0) {
+ return null;
+ }
+ Image scaled = rawIcon.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH);
+ return new ImageIcon(scaled);
+ } catch (Exception ex) {
+ System.err.println("鏃犳硶鍔犺浇鍥炬爣: " + path + " - " + ex.getMessage());
+ return null;
+ }
+ }
+}
+
--
Gitblit v1.10.0