public class Login extends JFrame{
    JFrame frame; //frame
    JTextField field; //to get username
    JPasswordField p; //password field
    JLabel l; //used for printing on frame
    JButton b;
    Login() {
        frame = new JFrame("Login");
        frame.setSize(350,200);
        frame.setLocationRelativeTo(null);
        frame.setLayout(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        l = new JLabel("Enter Username");
        l.setLocation(10,10);
        l.setSize(l.getPreferredSize());
        frame.add(l);
        field = new JTextField();
        field.setColumns(15);
        field.setSize(field.getPreferredSize());
        field.setLocation(120,10);
        frame.add(field);
        l = new JLabel("Enter Password");
        l.setLocation(10,40);
        l.setSize(l.getPreferredSize());
        frame.add(l);
        p = new JPasswordField();
        p.setColumns(15);
        p.setSize(p.getPreferredSize());
        p.setLocation(120,40);
        frame.add(p);
        b = new JButton("OK");
        b.setSize(b.getPreferredSize());
        b.setLocation(120, 80);
        frame.add(b);
        frame.setVisible(true);
    }
    private class b implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
           String str;
           str = field.getText();
           if(str.equals("")) {
               JOptionPane.showMessageDialog(null,"Please enter username");
               field.requestFocusInWindow();
           } else {
           }
        }
    }
    public static void main (String[] args) {
        new Login();
    }
}
the button won't functioning when I'm hit it
 
     
     
    