From 8718d0ed796b82d65c00332893ed50f75bc1d92e Mon Sep 17 00:00:00 2001 From: lds217 Date: Fri, 17 Jan 2025 16:26:19 -0500 Subject: [PATCH] [fix] navBar on the top --- medical_invoice.pdf | Bin 27896 -> 27891 bytes .../ui/component/CheckUpPage/CheckUpPage.java | 116 +++++++++++------- .../ui/component/LoginPage/LoginPage.java | 5 + 3 files changed, 79 insertions(+), 42 deletions(-) diff --git a/medical_invoice.pdf b/medical_invoice.pdf index 19074cd500c374b40a550b08ebbae0dff93dc5a6..e5cc97fdf61422880aec6f8e41b1e78e4d5652e1 100644 GIT binary patch delta 12122 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 z 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 H;?w^DqwGJ< diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java b/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java index e99fa1e..4e22325 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java @@ -75,29 +75,20 @@ public class CheckUpPage extends JPanel { updateQueue(); getDoctors(); - // Sidebar panel - JPanel sidebar = new JPanel() { - @Override - protected void paintComponent(Graphics g) { - super.paintComponent(g); - Graphics2D g2d = (Graphics2D) g; - int width = getWidth(); - int height = getHeight(); - Color color1 = new Color(63, 81, 181); - Color color2 = new Color(33, 150, 243); - GradientPaint gp = new GradientPaint(0, 0, color1, 0, height, color2); - g2d.setPaint(gp); - g2d.fillRect(0, 0, width, height); - } - }; - sidebar.setBackground(new Color(63, 81, 181)); - sidebar.setLayout(new GridLayout(15, 1)); - sidebar.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); + // navBar panel + JPanel navBar = new JPanel(); + navBar.setBackground(new Color(63, 81, 181)); + navBar.setLayout(new BorderLayout()); // Use BorderLayout for better control - String[] sidebarItems = {"Thống kê", "Thăm khám", "Dữ liệu bệnh nhân", "Kho", "Người dùng", "Thông tin"}; + // Left-aligned navigation items + JPanel navItemsPanel = new JPanel(); + navItemsPanel.setBackground(new Color(63, 81, 181)); + navItemsPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 20, 10)); // Items on the left + + String[] navBarItems = {"Thống kê", "Thăm khám", "Dữ liệu", "Kho", "Người dùng", "Thông tin"}; String[] destination = {"DashboardPage", "CheckUpPage", "PatientDataPage", "InventoryPage", "UserPage", "InfoPage"}; - for (int i = 0; i < sidebarItems.length; i++) { - String item = sidebarItems[i]; + for (int i = 0; i < navBarItems.length; i++) { + String item = navBarItems[i]; String dest = destination[i]; JLabel label = new JLabel(item); label.setForeground(Color.WHITE); @@ -124,32 +115,73 @@ public class CheckUpPage extends JPanel { } }); - sidebar.add(label); + navItemsPanel.add(label); } + // Add the left-aligned navigation items to the navBar + navBar.add(navItemsPanel, BorderLayout.WEST); + // Add a space between the navigation items and the user label + JPanel spacerPanel = new JPanel(); + spacerPanel.setBackground(new Color(63, 81, 181)); // Same background as navBar + navBar.add(spacerPanel, BorderLayout.CENTER); // Takes up all remaining space - // Make the sidebar scrollable - JScrollPane sidebarScrollPane = new JScrollPane(sidebar); - sidebarScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - sidebarScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); - sidebarScrollPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); - sidebarScrollPane.getViewport().setOpaque(false); - sidebarScrollPane.setOpaque(false); + // Right-aligned user label + JLabel userLabel = new JLabel("Welcome, " + LocalStorage.username); + userLabel.setForeground(Color.WHITE); + userLabel.setHorizontalAlignment(SwingConstants.RIGHT); + userLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // Make clickable + userLabel.setFont(new Font("Arial", Font.BOLD, 14)); - // Topbar panel - JPanel topbar = new JPanel(); - topbar.setLayout(new BorderLayout()); - topbar.setBackground(Color.WHITE); - topbar.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); + // Add mouse interactions for the userLabel + userLabel.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (SwingUtilities.isLeftMouseButton(e)) { // Check if it's a left-click + JPopupMenu popupMenu = new JPopupMenu(); + JMenuItem item1 = new JMenuItem("Option 1"); + JMenuItem item2 = new JMenuItem("Option 2"); + JMenuItem item3 = new JMenuItem("Option 3"); - JLabel title = new JLabel("Check Up"); - title.setFont(new Font("Arial", Font.BOLD, 18)); - topbar.add(title, BorderLayout.WEST); + // Add action listeners to the menu items + item1.addActionListener(event -> System.out.println("Option 1 selected")); + item2.addActionListener(event -> System.out.println("Option 2 selected")); + item3.addActionListener(event -> System.out.println("Option 3 selected")); + + // Add items to the popup menu + popupMenu.add(item1); + popupMenu.add(item2); + popupMenu.add(item3); + + // Get the location of the userLabel + Point location = userLabel.getLocation(); // Relative to the parent + SwingUtilities.convertPointToScreen(location, userLabel.getParent()); // Convert to screen coordinates + + // Show the popup + popupMenu.show(userLabel, e.getX(), e.getY()); + } + } + + @Override + public void mouseEntered(MouseEvent e) { + userLabel.setForeground(new Color(200, 230, 255)); // Highlight on hover + } + + @Override + public void mouseExited(MouseEvent e) { + userLabel.setForeground(Color.WHITE); // Restore original color + } + }); + + // Add the right-aligned user label to the navBar + JPanel userPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 20, 10)); + userPanel.setBackground(new Color(63, 81, 181)); + userPanel.add(userLabel); + navBar.add(userPanel, BorderLayout.EAST); + + // Set preferred size for the navBar + navBar.setPreferredSize(new Dimension(1200, 75)); - JLabel userInfo = new JLabel("Welcome, " + LocalStorage.username); - userInfo.setHorizontalAlignment(SwingConstants.RIGHT); - topbar.add(userInfo, BorderLayout.EAST); // Data table inside a RoundedPanel RoundedPanel leftPanel = new RoundedPanel(20, Color.WHITE, false); @@ -542,8 +574,8 @@ public class CheckUpPage extends JPanel { splitPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // Remove border - add(sidebarScrollPane, BorderLayout.WEST); - add(topbar, BorderLayout.NORTH); + add(navBar, BorderLayout.NORTH); +// add(topbar, BorderLayout.NORTH); add(splitPane, BorderLayout.CENTER); } diff --git a/src/main/java/BsK/client/ui/component/LoginPage/LoginPage.java b/src/main/java/BsK/client/ui/component/LoginPage/LoginPage.java index 21efb11..726a5aa 100644 --- a/src/main/java/BsK/client/ui/component/LoginPage/LoginPage.java +++ b/src/main/java/BsK/client/ui/component/LoginPage/LoginPage.java @@ -71,6 +71,11 @@ public class LoginPage extends JPanel { gbc.gridy++; JButton loginButton = new JButton("Login"); + // listener for Password Field to press Enter + passwordField.addActionListener(e -> { + loginButton.doClick(); + }); + loginButton.addActionListener(e -> { char[] passwordChars = passwordField.getPassword(); String password = new String(passwordChars);