Java Swing provides graphical user interface (GUI) components for building desktop applications. It includes common widgets like buttons, text fields, labels and dialog boxes. JOptionPane allows building simple dialog boxes for input/output. Swing components are lightweight and platform-independent compared to the older AWT components. Common Swing components discussed include JFrame for windows, JButton for buttons, JLabel for text, JFileChooser for file selection and JCheckBox, JRadioButton for state buttons.