11package org .pwss ;
22
3- import javax .swing .JFrame ;
4- import javax .swing .SwingUtilities ;
3+ import javax .swing .*;
54
5+ import com .formdev .flatlaf .FlatDarculaLaf ;
6+ import com .formdev .flatlaf .FlatDarkLaf ;
7+ import com .formdev .flatlaf .FlatIntelliJLaf ;
8+ import com .formdev .flatlaf .FlatLightLaf ;
9+ import com .formdev .flatlaf .themes .FlatMacDarkLaf ;
610import org .pwss .navigation .NavigationEvents ;
711import org .pwss .navigation .NavigationHandler ;
812import org .pwss .navigation .Screen ;
1115
1216public class Start {
1317 public static void main (String [] args ) {
14- SwingUtilities .invokeLater (() -> {
15- // Create the main frame
16- JFrame frame = new JFrame ("Scan Integrity Scanner" );
17- frame .setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE );
18- frame .setSize (350 , 250 );
19- frame .setLocationRelativeTo (null ); // center on screen
18+ try {
19+ // Set FlatLaf Look and Feel
20+ UIManager .setLookAndFeel (new FlatDarkLaf ());
2021
21- // Create presenter factory
22- PresenterFactory factory = new AppPresenterFactory ();
22+ // Create Main UI of the application on the Event Dispatch Thread
23+ SwingUtilities .invokeLater (() -> {
24+ // Create the main frame
25+ JFrame frame = new JFrame ("File Integrity Scanner" );
26+ frame .setResizable (false );
27+ frame .setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE );
28+ frame .setLocationRelativeTo (null ); // center on screen
2329
24- // Create navigation handler
25- NavigationHandler navigator = new NavigationHandler ( frame , factory );
30+ // Create presenter factory
31+ PresenterFactory factory = new AppPresenterFactory ( );
2632
27- // Hook navigation listener so presenters can signal navigation
28- NavigationEvents . setListener ( navigator :: navigateTo );
33+ // Create navigation handler
34+ NavigationHandler navigator = new NavigationHandler ( frame , factory );
2935
30- // Start with Login screen
31- navigator .navigateTo (Screen .LOGIN );
36+ // Hook navigation listener so presenters can signal navigation
37+ NavigationEvents .setListener (navigator ::navigateTo );
38+
39+ // Start with Login screen
40+ navigator .navigateTo (Screen .LOGIN );
41+
42+ // Finally, show the main frame hosting the screens :)
43+ frame .setVisible (true );
44+ });
45+ } catch ( Exception ex ) {
46+ System .err .println ( "Failed to initialize LaF" );
47+ }
3248
33- // Finally, show the main frame hosting the screens :)
34- frame .setVisible (true );
35- });
3649 }
3750}
0 commit comments