Java Foundation Classes , abreviat ca JFC , sunt un set de biblioteci de clase Java care oferă programelor Java un API convenabil pentru crearea unei interfețe grafice de utilizator ( GUI ). JFC include, în special, biblioteca Swing , Java 2D și multe altele, inclusiv prima bibliotecă Java din punct de vedere istoric pentru crearea de interfețe cu utilizatorul - Abstract Window Toolkit .
Numele Java Foundation Classes este un ecou al binecunoscutei biblioteci de ferestre MFC ( Microsoft Foundation Classes ) pentru platformele Windows. Într-adevăr, din punct de vedere funcțional, JFC rezolvă probleme similare cu cele pe care le rezolvă MFC - ca și MFC, JFC este conceput în primul rând pentru a crea interfețe grafice pentru utilizator. Cu toate acestea, ideologic, JFC este complet diferit de MFC. Dacă MFC a fost creat pentru a facilita munca unui programator în mediul Windows, pentru a-i oferi wrapper-uri abstracte peste API-ul Windows „despuși” (pe care, în principiu, este posibil să se implementeze tot la fel fără a utiliza MFC), atunci JFC este o parte integrantă a platformei Java în sine, și nu un înveliș peste unele API native. În plus, JFC, fiind implementat în limbajul Java complet orientat pe obiecte, este mult mai în concordanță cu ideologia și paradigma programării orientate pe obiecte.
În ceea ce privește nivelul de abstractizare oferit de JFC, este oportun să-l comparăm nu cu MFC, ci cu Windows Forms (parte a bibliotecii .NET FCL , concepută pentru a implementa aplicații GUI pe platforma .NET Framework ) sau cu clasele Qt pentru GUI.