Advanced Java programming with JavaFx: Write an email client

Put to work those hard earned Java programming skills! Use more than just the modern looks of JavaFX!

4.50 (523 reviews)
Programming Languages
7 hours
May 2021
last update
regular price

What you will learn

Master Java by coding

See how a big programming project looks like

Have a solid base about JavaFX

Write a complex app, frontend and backend.

Use advanced features of IDEs

Export your code from your IDE to an executable app


Seeing a message printed on the console when you click a button can be rewarding, but at some point you need to go beyond the basics of JavaFX. Project based learning is the best approach to become a competent JavaFX programmer.

Writing a calculator app is fun, but you know what is funnier? Getting a job as a programmer. You can't get there just by coding simple apps or watching presentations.

This course uses the latest versions of JavaFX at an advanced level, so you will be ready to write your own complex use interfaces using Java.

This course can be summed up as one big programming exercise. So if you want to feel more confident about your Java programming skills by building a unitary program, then this course is for you.

What you can expect from this course:

  • Install Java and JavaFX and setup your IDE, be it Eclipse on IntelliJ

  • Understand how to run an initial JavaFX program

  • Use FXML for writing UIs in a productive manner, just like Android programming

  • JavaFX views and controllers

  • Communication between classes - no singletons!

  • Model-View-Controller pattern for JavaFX applications

  • Make coll skins for your app with JavaFX css

  • Dynamically update your JavaFX themes

  • Multi-threading in JavaFX: Tasks, Services, Threads, all with real examples, NOT Thread.wait()

  • Custom JavaFX nodes for advanced functionality

  • Tables in JavaFX with Table Views, with dynamic data and style updates

  • JavaFX web views for reading and composing email messages

  • Run the JavaFX program outside your IDE and understand how to run Java Jar apps and fix JavaFX packaging issues

Advanced Java techniques you will learn by practice:

  • Abstract classes, Interfaces and inheritance

  • Annotations

  • Enums, Lists, Generics

  • Casting and Delegation

  • Recursion

  • Multi-threading

  • Lambda expressions

  • Comparable Interface

  • String Buffers

  • While(true) loops, yes, those exist

  • Selection models

  • Serialization and encoding

Course advantages:

  • Respect for your time: most of the time of the instructor typing is cut off, the course is focused on explanations

  • Concise: learn only what you need, no fillers to make the course falsely more appealing

  • Experienced and programming active instructor: a great teacher never looses touch with the industry. This is especially true for software development, where the industry is so dynamic. This helps the instructor stay up to date with the best coding guidelines and present you the challenging parts, not the "hello world"

  • Organized course structure: six parts, progressive approach, consistent content

  • Code changes in each lecture on Git with code diffs: this will help you get an concise overview of the lecture and correct in case you missed something

  • Big font, dark background, fullHD content, this way it is readable even on a small screen or even tablet.

  • Lifetime access

  • Big app for your portfolio - to present to your teacher or prospective employer

When I was a beginner, I struggled myself to go beyond basic examples and even if I knew the theory, I needed guidance to put in practice. So if you are at this point, if you had acquired programming skills and now you want to master them, please take a look at the free lectures, and if you like them, I'll see you in this JavaFX class!

The quality of the course is recommended by it's reviews:

"Very good course! Happily exceeded all expectations and I feel lucky that I found such an in-depth course on such a topic, that I happen to enjoy a lot!"

"A very good, fairly fast paced course. I'm enjoying it immensely. It is especially gratifying when you get to see real emails being sent and received."

"It was extremely helpful to understand of Complete JavaFX and Java Concepts. Applying these practice bring you perfect level to Java app for the develop. Alex , Man... One of the best trainer and the way he explanation in the course, extraordinary !!"

"If you already know Java and basic OOP principles, do the basic JavaFX tutorial on Oracle's site first and THEN take this class. Then you will be able to learn and appreciate the value that Alex brings to the table here.

This course doesn't waste much time teaching you the JavaFX basics, it jumps right in to real-world application. Seriously, do Oracle's JavaFX tutorial first! This class teaches you how to apply MVC principles to a real-world desktop application made with JFX. Without the basics first, you will get lost.

That said, this class is excellent! It fully covers modern desktop application design, including using dependency injection, threading, and scene management. These are the big things you need to know to write a decent application. Other courses just walk you through how to use each JavaFX control, so basically someone walking through the Java docs with you. This one teaches you how to write a real-world application."

"All other teachers on this website often forgot what is it to be a pro programmer and will always teach you using abstract example with banana and apple in a console that you will not relate to in any ways.

This course is the complete opposite!

For me again, top course, can't wait to watch more, they should be more like this."


Advanced Java programming with JavaFx: Write an email clientAdvanced Java programming with JavaFx: Write an email clientAdvanced Java programming with JavaFx: Write an email clientAdvanced Java programming with JavaFx: Write an email client


Course introduction and basic setup
Course introduction
Setting up a JavaFx project using InteliJ Ideea IDE
Setting up a JavaFx project using Eclipse IDE
First JavaFx Program
Setting the layout using FXML
Scene Builder
Setting up the basic layout
Section 2 introduction
Building the login window
Model-view-controller architectural pattern
Building the main window
Making the windows responsive
Comunicating between controllers
The abstract controller
Stages and Css
Section 3 introduction
Initializing stages
Stage actions
Building multiple stages
Configuring the options window
Css introduction
Updating the css dynamically
Css selectors
Java Mail
Section 4 introduction
JavaMail setup
Email account setup
The login service
Multithreading in JavaFx
Section 5 intro
Introduction on JavaFx services
More info about the Services and overall threads discussion
JavaFx treeItems for our folder structure
Fetching the email folder structure
Fetching all folders
Reading the email messages
Section 6 intro
Getting the messages
Email message bean
Adding messages to folder
TableView setup
Making unread messages appear bold
Sorting tableView elements
Visualizing the messages
Loading the messages
Email actions
Section 7 intro
The message listener
Updating folders with new messages
Receiving emails
Interacting with messages
Deleting messages
Composing messages
Section 8 intro
Compose messages layout
Compose messages controller
Compose messages Service
FInishing the app
Section 9 intro
Folder icons
Super css
Note on unit testing
Running the program


18 September 2021
Excellent course very well prepared and organized. I congratulate the author for the quality of the course, demonstrating the high knowledge of him in each section of it. For me personally, it has solved innumerable doubts that I had in the use of this technology, and it has given me new ways to solve problems.
24 July 2021
You did many configuration in eclipse, whereas, at my version, just I've written the code, it is working
20 March 2021
No-one is going to build applications with IDE only. usually maven/gradle used. Modular approach used in a real applications. Threading is not covered in all aspects... i.e.: Platform.enterNestedEventLoop, Platform.runLater vs Service? Pronunciation... In tiger. Effects with javafx... javafx vs swing... Most probably this course for beginners. It was expected (by me) concentration on javafx features and not java mail coding which takes almost half of the course.
28 September 2017
Rien à dire ce cours est au dessus de mes attentes, j'ai appris beaucoup de chose malgré le fait que je soit francophone.
29 August 2017
The instructor does a great job going through very complex materials. The example is very practical and covers a lot of core materials around JavaFX. The course could use a bit more polish, and a more explanations around specifics key concepts for better clarity.
27 August 2017
A very good, fairly fast paced course. I'm enjoying it immensely. It is especially gratifying when you get to see real emails being sent and received. I feel that like all IT and programming courses, when the skills are used, or more properly, attempted to be used, in the student's own projects, there will be a lot of flapping around and panic. This is also true of courses costing thousands of pounds where you sped a week in a classroom.
26 August 2017
This is an advanced introduction to JavaFx. I think its great that the instructor assumes prior knowledge of Java and doesn't have to spend time explaining each little thing. However, I think some of the JavaFx specific material could have used a bit more explanation. He basically just codes the project and you follow along so expect to do a bit of research on your own if you want to understand everything, It's a cool project and I'm enjoying myself following along. I gave it three stars because he's not so much teaching as simply coding a project for you to watch.
12 August 2017
Author is quite good in explaining JavaFX framework and the course saved me hours of googling. But, I noticed following drawbacks in the course: 1. The author sometimes does not follow common Java conventions, like the first letter of a variable name should be in lower case -- but some variables instead named like 'Inbox', 'Sent', etc. 2. Despite using lambda-expressions, what means Java 8 is used, author avoids using dimond operator (<>) introduced in Java 7. 3. In the project presented I don't see any reasons to use integer constants as status codes. Enumerations are definitely easier to maintain, and memory usage/performance here are not so important. 4. Some variables/parameters/methods/classes could have a better name. In some lecture variable or method parameter was named 'value', which is not good from Clean Code point of view. 5. Sometimes lecturer just gives up explaining difficult aspects and says 'you will understand it later'. I don't think it's a good practice. 6. Broken encapsulation. Some fields in classes was made public and exposed to the whole world. It is not the best Java programming practice. It would be better to create public method which uses this field (for example map for conversions), but field itself should be made private. Conclusion: It is a good course for people how already know Java quite well, but need a quick start into JavaFX framework.
14 May 2017
Very informative and explains most things, but could expand a little a bit more on the abstract classes
12 April 2017
Straight to the point training. Do not waste valuable time as in other JavaFX courses. I rate this course as VERY GOOD.
26 March 2017
Der Kurs ist sehr niveauvoll!! Trotz Akzent ist dem Sprecher gut zu folgen, da er recht ruhig und bedacht redet. Vielen Dank für die vielen wertvollen Praxis-Tipps.
19 March 2017
Exactly what it says.. Implementation of previously learned concepts to make a usable application. Nice
6 March 2017
This course helped me a lot to see lots of concepts used at developing java/fx applications using MVC pattern. Tutor is cool and really easy to follow him typeing while typing my self as well, which i found very important if you would like more progress in your software eveloper improvment. He promissed to add how to set secure connection to gmail accout but he did not presented it yet, i have 3 more lessons to do in "polishing application" section and i hope he will till the end :) Anyway, he put a lot of effort to create this out, so thank you very very much! If you need a complete application development workflow you should take this route to help your self and set a good staring point. Once again thank you a lot for sharing knowlage with us! p.s. I did not got to the end, but if you did not showed how to build appliction to create installablr exe file might summed up the whale circle of developemnt.
4 March 2017
Great course for learning how to implement a real life application using javafx and java OOP techniques. Thanks Alex for taking the time to create this tutorial. It was exactly what I was looking for!
20 February 2017
Have just finished the first two lectures. the course is looking very promising. the instructor explains things very clearly.



Advanced Java programming with JavaFx: Write an email client - Price chart


Advanced Java programming with JavaFx: Write an email client - Ratings chart

Enrollment distribution

Advanced Java programming with JavaFx: Write an email client - Distribution chart


4/7/2021100% OFF
6/30/2021100% OFF
7/5/2021100% OFF
7/12/2021100% OFF
7/19/2021100% OFF
8/10/2021100% OFF
10/13/2021100% OFF
10/21/2021100% OFF
udemy ID
course created date
course indexed date
course submited by