@@ -50,6 +50,7 @@ public class BudgetScreen extends JFrame
5050 static int currentYPosition = 0 ;
5151 Preferences pref ;
5252 int user_id = 0 ;
53+ boolean isNightMode = false ;
5354
5455 public BudgetScreen ()
5556 {
@@ -109,6 +110,11 @@ private void initComponents()
109110 HeadPanel .add (lblProjectTitle , new AbsoluteConstraints (40 , 0 , 290 , 30 ));
110111
111112 btnMode .setContentAreaFilled (false );
113+ btnMode .addActionListener ((ActionEvent evt )
114+ ->
115+ {
116+ btnModeActionPerformed (evt );
117+ });
112118 HeadPanel .add (btnMode , new AbsoluteConstraints (0 , 0 , 30 , 30 ));
113119
114120 btnMinimize .setContentAreaFilled (false );
@@ -381,6 +387,15 @@ private void lblHeadMouseDragged(MouseEvent evt)
381387
382388 }
383389
390+ private void btnModeActionPerformed (ActionEvent evt )
391+ {
392+
393+ isNightMode = !isNightMode ;
394+ onMode ();
395+ pref .putBoolean ("isNightMode" , isNightMode );
396+
397+ }
398+
384399 public static void main (String args [])
385400 {
386401
@@ -424,6 +439,7 @@ private void initInstances()
424439 expenseTracker = new ExpenseTracker ();
425440 pref = Preferences .userNodeForPackage (Class .class );
426441 user_id = pref .getInt ("user_id" , 0 );
442+ isNightMode = pref .getBoolean ("isNightMode" , false );
427443
428444 }
429445
@@ -433,6 +449,8 @@ private void initIcons()
433449 setIconImage (Toolkit .getDefaultToolkit ().getImage (getClass ().getResource (expenseTracker .getString ("logo" ))));
434450 lblHead .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString ("head" ))));
435451
452+ onMode ();
453+
436454 }
437455
438456 private void initTable ()
@@ -460,4 +478,81 @@ private void initTable()
460478
461479 }
462480
481+ private void onMode ()
482+ {
483+
484+ final Color colorBodyPanel = isNightMode
485+ ? new Color (41 , 41 , 41 )
486+ : new Color (240 , 240 , 240 );
487+
488+ final Color colorPrimary = isNightMode
489+ ? new Color (62 , 62 , 62 )
490+ : new Color (225 , 225 , 225 );
491+
492+ final Color colorTitle = isNightMode
493+ ? new Color (51 , 153 , 255 )
494+ : new Color (0 , 0 , 0 );
495+
496+ final Color colorLbl = isNightMode
497+ ? new Color (204 , 204 , 204 )
498+ : new Color (0 , 0 , 0 );
499+
500+ final String mode = isNightMode
501+ ? "sun"
502+ : "moon" ;
503+
504+ final String back = isNightMode
505+ ? "nightback"
506+ : "dayback" ;
507+
508+ final String calculator = isNightMode
509+ ? "nightcalculator"
510+ : "daycalculator" ;
511+
512+ final String clear = isNightMode
513+ ? "nightclear"
514+ : "dayclear" ;
515+
516+ final String add = isNightMode
517+ ? "nightadd"
518+ : "dayadd" ;
519+
520+ final String graph = isNightMode
521+ ? "nightgraph"
522+ : "daygraph" ;
523+
524+ final String delete = isNightMode
525+ ? "nightdelete"
526+ : "daydelete" ;
527+
528+ final String deleteAll = isNightMode
529+ ? "nightdeleteAll"
530+ : "daydeleteAll" ;
531+
532+ BodyPanel .setBackground (colorBodyPanel );
533+ DataPanel .setBackground (colorPrimary );
534+
535+ lblTitle .setForeground (colorTitle );
536+ lblCategory .setForeground (colorLbl );
537+ lblAmount .setForeground (colorLbl );
538+ lblDate .setForeground (colorLbl );
539+ lblFrom .setForeground (colorLbl );
540+ lblTo .setForeground (colorLbl );
541+ lblBalance .setForeground (colorLbl );
542+ lblTotal .setForeground (colorLbl );
543+
544+ btnMode .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString (mode ))));
545+ btnBack .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString (back ))));
546+ btnCalculator .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString (calculator ))));
547+ btnClear .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString (clear ))));
548+ btnAdd .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString (add ))));
549+
550+ btnGraph .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString (graph ))));
551+ btnDelete .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString (delete ))));
552+ btnDeleteAll .setIcon (new ImageIcon (getClass ().getResource (expenseTracker .getString (deleteAll ))));
553+
554+ tfAmount .setBackground (colorPrimary );
555+
556+ }
557+
463558}
0 commit comments