public PasswordField(String label) { setLayout(new BorderLayout()); m_label = new JLabel(label); if (label.length() > 0) { m_label.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5)); } add(m_label, BorderLayout.WEST); m_password = new JPasswordField(); m_password.addKeyListener( new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { super.keyReleased(e); m_support.firePropertyChange("", null, null); } }); m_password.addFocusListener( new FocusAdapter() { @Override public void focusLost(FocusEvent e) { super.focusLost(e); m_support.firePropertyChange("", null, null); } }); add(m_password, BorderLayout.CENTER); setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); }