Howdy. 

Stream Processing, Generic Classes 

Trees, Data Structures 

GUIs

import javax.swing.*; 

class Two {
  public static void main(String[] args) {
    JFrame frame = new JFrame(); 

    JButton button = new JButton("Click me!"); 
    JButton b1 = new JButton("Click me!"); 
    JButton b2 = new JButton("Click me!"); 
    JButton b3 = new JButton("Click me!"); 
    JLabel label = new JLabel("Hello, World, how have you been!"); 
 
    JPanel panel = new JPanel();  
    panel.add(button); 
    panel.add(b1);     
    panel.add(b2);     
    panel.add(b3);     
    panel.add(label); 

    frame.add(panel); 

    frame.setSize(300, 100); 
    frame.setTitle("An empty frame"); 
    // frame.setDefaultCloseOperation(3); // better: JFrame.EXIT_ON_CLOSE
    frame.setVisible(true); 
  }
}

JFrame 

JPanel 

JButton

JTextField

JLabel

There is a default layout enforced by the layout manager. 

JPanel's default's layout is called: Flow Layout. 

https://docs.oracle.com/javase/tutorial/

https://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html

--