Swing components have their own "look-and-feel," which is derived from
Java. They make little use of the underlying OS, which is called "lightweight." Some AWT classes (eg Color) don't have a "look-and-feel" as such, and are therefore not duplicated in Swing. Their inheritance varies, but you will usually find a Swing class has a superclass in AWt somewhere. Those classes in Swing which correspond to AWT classes have the same name with a J prefix.
AWT components are older than the corresponding Swing classes, and they make heavy use of the OS, and are called "heavyweight." They do not have a "look-and-feel" of their own, but "borrow" a "look-and-feel" from the OS.
So: A Swing app using "metal" "look-and-feel" will run on Windows and on a Mac, and ought to look the same.
An AWT app will run on Windows and Mac, but will
look different. CR