Advanced Java programming with JavaFx: Write an email client
4.4 (285 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,421 students enrolled

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!
Bestseller
4.4 (285 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,421 students enrolled
Created by Alex Horea
Last updated 4/2020
English
English [Auto-generated]
Current price: $111.99 Original price: $159.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 7 hours on-demand video
  • 1 article
  • 4 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll 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
Course content
Expand all 68 lectures 06:45:20
+ Course introduction and basic setup
6 lectures 32:35

Here we introduce the course and set guidelines on how to take it.

Preview 04:24

Here we will configure a new JavaFx project in the InteliJ Ideea IDE

Setting up a JavaFx project using InteliJ Ideea IDE
06:07

Here we will configure a new JavaFx project in the Eclipse IDE

Setting up a JavaFx project using Eclipse IDE
06:33

Here we will build a basic JavaFx program

First JavaFx Program
06:03

Here a more productive way of setting up our layout is introduced: the FXML file

Setting the layout using FXML
05:27

Scene Builder is a great program that let's us preview our layout. In this lecture we will install it.

Scene Builder
04:01
+ Setting up the basic layout
7 lectures 33:55

Here we see what we will study in this section.

Section 2 introduction
01:12

In this lecture we will build the login window of our program.

Building the login window
06:56

Here we will talk about the MVC pattern.

Model-view-controller architectural pattern
03:00

In this lecture we will build the main window of our program.

Building the main window
07:46

In this lecture we will learn how to make our windows responsive to resizes by using anchor pane constraints.

Making the windows responsive
04:35

Here we will talk about the Singleton pattern and why it is not the best solution for our program.

Comunicating between controllers
03:50

Here we will find a better solution for our controller communication problem: a base abstract class.

The abstract controller
06:36
+ Stages and Css
8 lectures 59:17

Here we see what we will study in this section.

Section 3 introduction
01:24

Here we will write a method that will initialize our stages.

Initializing stages
06:00

Here we will learn how to call interact with our stages.

Stage actions
07:24

Here we will implement a basic options window

Building multiple stages
06:25

Here we will add different program configurations through the option window.

Configuring the options window
11:49

Here we will have our first contact with css styles.

Css introduction
08:32

Here we will learn how to update our programs visuals while it is running.

Updating the css dynamically
09:12

Here we will learn how to use css selectors.

Css selectors
08:31
+ Java Mail
4 lectures 19:11

Here we see what we will study in this section.

Section 4 introduction
00:40

Here we will add JavaMail to our program.

JavaMail setup
03:36

In this lecture we will write an object that will hold the state our our email account

Email account setup
06:10

In this lecture we will connect to the email server by writing a login service

The login service
08:45
+ Multithreading in JavaFx
6 lectures 33:13

Here we see what we will study in this section.

Section 5 intro
01:31

Here we will use a JavaFx service for the first time. This way we can prevent out UI from blocking.

Introduction on JavaFx services
06:14
More info about the Services and overall threads discussion
05:46

Here we will start building a folder structure

JavaFx treeItems for our folder structure
06:06

Here we will fetch the email folder structure

Fetching the email folder structure
08:52

Here we will fetch all our folders using a cool Java feature: recursion.

Fetching all folders
04:44
+ Reading the email messages
9 lectures 59:39

Here we see what we will study in this section.

Preview 01:34

Here we will get the messages for each folder.

Getting the messages
04:33

Here we will write a bean(simple Java class) that will hold our messages.

Email message bean
09:14

Here we will add messages to each folder.

Adding messages to folder
09:34

Here we will setup our tableView, which will contain our messages.

TableView setup
08:18

Here we will make our unread messages appear bold.

Making unread messages appear bold
04:56

Here we will create a custom property that allows us do nicely display the messages size while keeping the sorting functionality.

Preview 06:50

Here we will implement a messages visualization feature.

Visualizing the messages
09:14

Here we will load the messages.

Loading the messages
05:26
+ Email actions
6 lectures 31:42

Here we see what we will study in this section.

Section 7 intro
01:10

Here we will implement a listener that will receive new messages.

The message listener
04:05
Updating folders with new messages
08:06

Here we will add the new messages to the top of our list.

Preview 05:32

Here we will add basic interaction with the email messages.

Interacting with messages
05:42

Here we will learn how to set the deletion flag on messages using context menus.

Deleting messages
07:07
+ Composing messages
4 lectures 27:26

Here we see what we will study in this section.

Section 8 intro
00:58

Here we will build the layout for composing messages.

Compose messages layout
07:44

Here we will write our compose messages controller.

Compose messages controller
10:00

Here we will write the final part of composing messages, while we connect to the email server for message transport.

Compose messages Service
08:44
+ Finishing the app
5 lectures 25:58

Here we see what we will study in this section.

Section 9 intro
01:30

Here we will add icons to our treeItem elements.

Folder icons
08:44

Here we will improve our css styles, to make our app look a lot better.

Super css
05:05

Here we will see why unit tests are so important.

Note on unit testing
03:08

Here we will go through the process of creating a runnable jar.

Running the program
07:31
+ Handling attachments
7 lectures 49:40
Section 10 intro
01:49
Handling attachements with multipart
08:23
Getting attachments
04:47
Email message details window
10:11
Saving attachments to disk
05:30
Custom button class
11:25
Sending emails with attachments
07:35
Requirements
  • Knowledge of the Java programming language
  • Familiar with an IDE
  • Basic knowledge of HTML(desired, not required)
  • Time and patience
Description

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. Project based learning is the best approach to become a competent 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 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.

We'll be working with JavaFX and explore it's UI components, data bindings and concurrency solutions.

The course is divided in 9 parts, and uses a progressive approach to building software.

The best way to learn is by exercise, so this course focuses on using different java topics, rather than explaining them in detail.

All lectures are in 16:9 Full HD and contain all the source code. 


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 class!

Who this course is for:
  • Beginer Java programmers who aim to become intermediate programmers
  • Programmers who want an introduction to JavaFX
  • Java programmers who want to desing user interfaces
  • Java programmers who want to be better prepared for a job interview