Java Dashboard Light and Dark mode
This dashboard build by using java swing with flatlaf look and feel
Library use
- flatlaf-3.2.jar
- flatlaf-extras-3.2.jar
- jsvg-1.2.0.jar
- flatlaf-fonts-roboto-2.137.jar
- swing-toast-notifications-1.0.1.jar
Sample code to show form
// Application class from package raven.application
// Parameter as java.awt.Component
Application.showForm(new PanelForm());
// Set menu selection by index and subIndex
Application.setSelectedMenu(0, 0);
Menu Items
// Modify this code in raven.menu.Menu.java
private final String menuItems[][] = {
{"~MAIN~"}, // Menu title
{"Dashboard"},
{"Email", "Inbox", "Read", "Compost"},
};
Menu Event
menu.addMenuEvent(new MenuEvent() {
@Override
public void menuSelected(int index, int subIndex, MenuAction action) {
if (index == 1) {
if (subIndex == 1) {
Application.showForm(new FormInbox());
} else if (subIndex == 2) {
Application.showForm(new FormRead());
}
} else {
action.cancel();
}
}
});
More custom you can apply flatlaf style properties
Screenshot
![sample 1](https://private-user-images.githubusercontent.com/58245926/242277619-23ab0477-c11e-498d-92f9-37f6bfa944f6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDM2MDMyMTQsIm5iZiI6MTcwMzYwMjkxNCwicGF0aCI6Ii81ODI0NTkyNi8yNDIyNzc2MTktMjNhYjA0NzctYzExZS00OThkLTkyZjktMzdmNmJmYTk0NGY2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjI2VDE1MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQyYzE4MDJhOTJiM2Y5NWJhYWQ1Y2M2NzcyNzRmOWExNTgxNGRiYmYwNTYxYTJiOTk2YTYwYWI2Yjc3MjA0OTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.YHj9Av5x4RmjlynLU-vsSeNX3P8b8ZoQyXmZSxFY7SI)
![sample 1](https://private-user-images.githubusercontent.com/58245926/242277642-44d1972b-b29b-4a11-8fdd-be7f27782e5b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDM2MDMyMTQsIm5iZiI6MTcwMzYwMjkxNCwicGF0aCI6Ii81ODI0NTkyNi8yNDIyNzc2NDItNDRkMTk3MmItYjI5Yi00YTExLThmZGQtYmU3ZjI3NzgyZTViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjI2VDE1MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ5NWUwMjNmOGM5NDQ2NTFlZGVmOWJkODViY2FlNmI0NTRiOWIwMmYxNmNjMzY3MWE2NGU3ZjFkNDFiNTU3NGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.IB0ECuKMbeilEiU9dcbHcJrqf-TVTHit56xZHW8WU7I)
![sample 1](https://private-user-images.githubusercontent.com/58245926/242278204-71c03d69-4508-43ea-86e6-2cba0c8e1dc8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDM2MDMyMTQsIm5iZiI6MTcwMzYwMjkxNCwicGF0aCI6Ii81ODI0NTkyNi8yNDIyNzgyMDQtNzFjMDNkNjktNDUwOC00M2VhLTg2ZTYtMmNiYTBjOGUxZGM4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjI2VDE1MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY1YzkwMTc1NTc1OWM5YTM0NGZlMzA1N2Y1MDdmYmZjNDI0OWI2MmI0NDEwMTNlY2ZmNjdmMmE0MGRkZWFkMjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.XUdyHtCbA9LL7AJVDORFZM283ypuD7mRYxGDTAKZxaQ)
![sample 1](https://private-user-images.githubusercontent.com/58245926/242043933-fe793459-33b8-47e7-be06-385c3e4dfa37.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDM2MDMyMTQsIm5iZiI6MTcwMzYwMjkxNCwicGF0aCI6Ii81ODI0NTkyNi8yNDIwNDM5MzMtZmU3OTM0NTktMzNiOC00N2U3LWJlMDYtMzg1YzNlNGRmYTM3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjI2VDE1MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMzYmE3MTllNWU2NTdjMzdkZWIwMzE2Y2RlN2NjMjEyZjg1MmQ1OGIxNjEzNTU2YmRmODg5N2NjMjhjYWY2MzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.4ND3RqoirFiQeJHZhSIja_DQJHiaaM8wf5k-LqjxdlM)
Update Note
- [27-05-2023] Add menu item title use
~
sign around your title name :{"~YOUR TITLE NAME~"}
- [28-05-2023] Update auto scale component and change
Application.mainForm.showForm()
toApplication.showForm()
- [29-05-2023] Update popup submenu item removed border and add drop shadow border
- [31-05-2023] Update add login form
- [31-05-2023] Update selection menu background and add method selected menu by index and subIndex
- [17-06-2023] Update add Toast Notifications
- [27-06-2023] Update add menu font properties for menu item and menu label
Menu.item.font
andMenu.label.font
- [27-06-2023] Update menu support right to left by enable this code
- [03-10-2023] Update add properties
AccentControl.show
to show and hide accent color toolbar