From 1a57e88046dd96170433511b56169f60dbf7d208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=9D=BF=E5=93=B2?= <15683246+Azhe-D@user.noreply.gitee.com> Date: Sun, 19 Apr 2026 17:48:16 +0800 Subject: [PATCH] 3 --- .../mypro/basecomponet/AwtMainComponet.java | 61 ++++++++++++++----- .../com/mypro/mainsurface/MainSurface.java | 2 +- 2 files changed, 47 insertions(+), 16 deletions(-) diff --git a/FishGame/src/com/mypro/basecomponet/AwtMainComponet.java b/FishGame/src/com/mypro/basecomponet/AwtMainComponet.java index 985d1fa..727e8d9 100644 --- a/FishGame/src/com/mypro/basecomponet/AwtMainComponet.java +++ b/FishGame/src/com/mypro/basecomponet/AwtMainComponet.java @@ -24,17 +24,18 @@ public class AwtMainComponet{ private static boolean isMaximized = false; private static Rectangle normalBounds; - private static final int TITLE_BAR_HEIGHT = 30; - private static final int BUTTON_WIDTH = 40; - private static final int BUTTON_HEIGHT = 30; + private static final int TITLE_BAR_HEIGHT = 40; + private static final int BUTTON_WIDTH = 50; + private static final int BUTTON_HEIGHT = 40; + private static int hoveredButton = -1; public static void main(String[] args) throws Exception { Toolkit tool = Toolkit.getDefaultToolkit(); Dimension d = tool.getScreenSize(); frame = new JFrame(); GamingInfo.getGamingInfo().setGaming(true); - GamingInfo.getGamingInfo().setScreenWidth(900); - GamingInfo.getGamingInfo().setScreenHeight(600); + GamingInfo.getGamingInfo().setScreenWidth(1280); + GamingInfo.getGamingInfo().setScreenHeight(800); GamingInfo.getGamingInfo().setCurrentState(GamingInfo.STATE_START_SCREEN); frame.setSize(GamingInfo.getGamingInfo().getScreenWidth(), GamingInfo.getGamingInfo().getScreenHeight()); frame.setUndecorated(true); @@ -105,6 +106,23 @@ public void mouseClicked(MouseEvent e) { frame.addMouseMotionListener(new MouseMotionListener() { @Override public void mouseMoved(MouseEvent e) { + int x = e.getX(); + int y = e.getY(); + int frameWidth = frame.getWidth(); + + if (y < TITLE_BAR_HEIGHT) { + if (x >= frameWidth - BUTTON_WIDTH * 3 && x < frameWidth - BUTTON_WIDTH * 2) { + hoveredButton = 0; + } else if (x >= frameWidth - BUTTON_WIDTH * 2 && x < frameWidth - BUTTON_WIDTH) { + hoveredButton = 1; + } else if (x >= frameWidth - BUTTON_WIDTH) { + hoveredButton = 2; + } else { + hoveredButton = -1; + } + } else { + hoveredButton = -1; + } } @Override @@ -157,33 +175,46 @@ public static void drawTitleBar(Graphics g, int width, int height) { g.setColor(new java.awt.Color(40, 40, 60)); g.fillRect(0, 0, width, TITLE_BAR_HEIGHT); + g.setColor(new java.awt.Color(60, 60, 80)); + g.drawLine(0, TITLE_BAR_HEIGHT - 1, width, TITLE_BAR_HEIGHT - 1); + g.setColor(java.awt.Color.WHITE); - g.setFont(new java.awt.Font("Microsoft YaHei", java.awt.Font.BOLD, 14)); - g.drawString("捕鱼游戏", 10, 20); + g.setFont(new java.awt.Font("Microsoft YaHei", java.awt.Font.BOLD, 16)); + g.drawString("捕鱼游戏", 15, 27); int buttonX = width - BUTTON_WIDTH * 3; - g.setColor(java.awt.Color.GRAY); + java.awt.Color minimizeColor = (hoveredButton == 0) ? new java.awt.Color(80, 80, 100) : new java.awt.Color(60, 60, 80); + g.setColor(minimizeColor); g.fillRect(buttonX, 0, BUTTON_WIDTH, BUTTON_HEIGHT); + g.setColor(new java.awt.Color(80, 80, 100)); + g.drawLine(buttonX, 0, buttonX, BUTTON_HEIGHT); g.setColor(java.awt.Color.WHITE); - g.drawLine(buttonX + 10, 15, buttonX + BUTTON_WIDTH - 10, 15); + g.fillRect(buttonX + 12, 18, BUTTON_WIDTH - 24, 4); buttonX += BUTTON_WIDTH; - g.setColor(java.awt.Color.GRAY); + java.awt.Color maximizeColor = (hoveredButton == 1) ? new java.awt.Color(80, 80, 100) : new java.awt.Color(60, 60, 80); + g.setColor(maximizeColor); g.fillRect(buttonX, 0, BUTTON_WIDTH, BUTTON_HEIGHT); + g.setColor(new java.awt.Color(80, 80, 100)); + g.drawLine(buttonX, 0, buttonX, BUTTON_HEIGHT); g.setColor(java.awt.Color.WHITE); if (isMaximized) { - g.drawRect(buttonX + 12, 10, BUTTON_WIDTH - 24, BUTTON_HEIGHT - 20); + g.drawRect(buttonX + 12, 10, BUTTON_WIDTH - 26, BUTTON_HEIGHT - 22); + g.drawRect(buttonX + 16, 8, BUTTON_WIDTH - 26, BUTTON_HEIGHT - 22); } else { - g.drawRect(buttonX + 10, 8, BUTTON_WIDTH - 20, BUTTON_HEIGHT - 16); + g.drawRect(buttonX + 12, 10, BUTTON_WIDTH - 24, BUTTON_HEIGHT - 20); } buttonX += BUTTON_WIDTH; - g.setColor(java.awt.Color.RED); + java.awt.Color closeColor = (hoveredButton == 2) ? new java.awt.Color(220, 50, 50) : new java.awt.Color(200, 40, 40); + g.setColor(closeColor); g.fillRect(buttonX, 0, BUTTON_WIDTH, BUTTON_HEIGHT); + g.setColor(new java.awt.Color(80, 80, 100)); + g.drawLine(buttonX, 0, buttonX, BUTTON_HEIGHT); g.setColor(java.awt.Color.WHITE); - g.drawLine(buttonX + 12, 10, buttonX + BUTTON_WIDTH - 12, BUTTON_HEIGHT - 10); - g.drawLine(buttonX + BUTTON_WIDTH - 12, 10, buttonX + 12, BUTTON_HEIGHT - 10); + g.drawLine(buttonX + 15, 12, buttonX + BUTTON_WIDTH - 15, BUTTON_HEIGHT - 12); + g.drawLine(buttonX + BUTTON_WIDTH - 15, 12, buttonX + 15, BUTTON_HEIGHT - 12); } } diff --git a/FishGame/src/com/mypro/mainsurface/MainSurface.java b/FishGame/src/com/mypro/mainsurface/MainSurface.java index 0d8f819..63cb9f0 100644 --- a/FishGame/src/com/mypro/mainsurface/MainSurface.java +++ b/FishGame/src/com/mypro/mainsurface/MainSurface.java @@ -22,7 +22,7 @@ import com.mypro.model.interfaces.Drawable; public class MainSurface extends JPanel{ - private static final int TITLE_BAR_HEIGHT = 30; + private static final int TITLE_BAR_HEIGHT = 40; private boolean gameInitialized = false; private boolean gameStarted = false;