You are browsing as a guest. Sign up (or log in) to start making projects!

1h 26m 57s logged

Dev Log: Name That Nation Implementation of Core UI Panels (Start, Instructions, & Settings)

Overview:

  • Successfully built and structured the primary navigational and configuration panels for NameThatNation.
  • Implemented Java Swing components across three core areas: the StartPanel (handling user onboarding and core navigation), the InstructionsPanel (displaying gameplay mechanics in a scrollable format), and the SettingsPanel (giving users control over gameplay parameters like difficulty, map sizes, background colors, and continent selection).

Key Implementations:

  1. StartPanelUser Onboarding: Added a JTextField for name entry along with strict data validation. If the field is empty or left as default, a warning message (noName JLabel) triggers in red text, blocking gameplay progression. Animated Background: Integrated a javax.swing.Timer alongside a modified paintComponent method to alternate every 0.5 seconds between three unique world images (World1.png to World3.png), creating a smooth looping animation of a rotating Earth.CardLayout Navigation: Configured centralized action listeners (buttons and exitListener) to pass state data to the parent container, cleanly swapping panels or closing the application altogether.

  2. InstructionsPanelLayout & Scrolling: Used a BorderLayout to organize an informative overview of rules, score tallies, powerups, and level details.

Scroll Mechanics: Embedded a heavy block of instruction text into a non-editable JTextArea wrapped in a JScrollPane, forcing explicit vertical navigation while keeping horizontal scrolling locked.

Visual Assets: Overlaid a game preview snapshot (Game.png) on top of a custom backdrop image to give players context before starting.

  1. SettingsPanelRGB Customization: Implemented three distinct JSlider inputs (Red, Green, Blue) bound to a ColorHandler listener. This updates the player’s canvas background dynamically via the shared Information state object.

Game Parameters: Combined a JScrollBar to control image scale thresholds, a JMenuBar with JMenuItem nodes for changing the match difficulty (Easy, Medium, Hard), and an array of JCheckBox fields representing all seven continents.

Challenges:

Absolute Layout Positioning: Managing explicit component bounds (setBounds) in the null-layout StartPanel requires highly specific coordinates that can scale poorly if window sizes are dramatically altered later.

Validation Multi-threading: Syncing state requirements—such as throwing warnings when fewer than 3 continents are selected or managing name checks—requires seamless communication between panel instances and the core Information holder class.

Next Steps:

Enforce Continent Validation: Active counters ensuring the validation warning dynamically locks or unlocks the “Back” button if the 3-continent minimum isn’t met.

Integrate Game Logic: Establish properties inside the GamePanel constructor that ingest the finalized values set by the sliders, checkboxes, and scrollbars from the configuration stage.

0
7

Comments 0

No comments yet. Be the first!