org.jdesktop.swingx
Class JXLoginPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.jdesktop.swingx.JXPanel
                      extended by org.jdesktop.swingx.JXLoginPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable

public class JXLoginPane
extends JXPanel

JXLoginPane is a specialized JPanel that implements a Login dialog with support for saving passwords supplied for future use in a secure manner. LoginService is invoked to perform authentication and optional PasswordStore can be provided to store the user login information.

In order to perform the authentication, JXLoginPane calls the authenticate method of the LoginService . In order to perform the persistence of the password, JXLoginPane calls the put method of the PasswordStore object that is supplied. If the PasswordStore is null, then the password is not saved. Similarly, if a PasswordStore is supplied and the password is null, then the PasswordStore will be queried for the password using the get method. Example:

         final JXLoginPane panel = new JXLoginPane(new LoginService() {
                      public boolean authenticate(String name, char[] password,
                                      String server) throws Exception {
                              // perform authentication and return true on success.
                              return false;
                      }});
      final JFrame frame = JXLoginPane.showLoginFrame(panel);
 

See Also:
Serialized Form

Nested Class Summary
static class JXLoginPane.JXLoginDialog
           
static class JXLoginPane.JXLoginFrame
           
protected  class JXLoginPane.LoginListenerImpl
          Listener class to track state in the LoginService
static class JXLoginPane.SaveMode
          The JXLoginPane can attempt to save certain user information such as the username, password, or both to their respective stores.
static class JXLoginPane.Status
          Returns the status of the login process
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static String CANCEL_LOGIN_ACTION_COMMAND
          Action key for an Action in the ActionMap that cancels the Login procedure
static String LOGIN_ACTION_COMMAND
          Action key for an Action in the ActionMap that initiates the Login procedure
static String uiClassID
          UI Class ID
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JXLoginPane()
          Create a JXLoginPane that always accepts the user, never stores passwords or user ids, and has no target servers.
JXLoginPane(LoginService service)
          Create a JXLoginPane with the specified LoginService that does not store user ids or passwords and has no target servers.
JXLoginPane(LoginService service, PasswordStore passwordStore, UserNameStore userStore)
          Create a JXLoginPane with the specified LoginService, PasswordStore, and UserNameStore, but without a server list.
JXLoginPane(LoginService service, PasswordStore passwordStore, UserNameStore userStore, List<String> servers)
          Create a JXLoginPane with the specified LoginService, PasswordStore, UserNameStore, and server list.
 
Method Summary
 void addNotify()
          Notifies this component that it now has a parent component.
protected  void cancelLogin()
          Cancels the login procedure.
protected  Action createCancelAction()
          Create and return an Action for canceling login
protected  Action createLoginAction()
          Create and return an Action for logging in
protected  Image createLoginBanner()
          Create and return an image to use for the Banner.
 Image getBanner()
          Return the image used as the banner
 String getBannerText()
          Returns text used when creating the banner
 String getErrorMessage()
          Returns the error message for this login panel
 LoginService getLoginService()
          Gets the LoginService for this panel.
 String getMessage()
          Returns the custom message for this login panel
 char[] getPassword()
          Gets the Password for this panel.
 PasswordStore getPasswordStore()
          Gets the PasswordStore for this panel.
 JXLoginPane.SaveMode getSaveMode()
           
 List<String> getServers()
           
 JXLoginPane.Status getStatus()
          Returns the panel's status
 LoginPaneUI getUI()
          Returns the look and feel (L&F) object that renders this component.
 String getUIClassID()
          Returns the name of the L&F class that renders this component.
 String getUserName()
          Gets the User name for this panel.
 UserNameStore getUserNameStore()
          Gets the UserNameStore for this panel.
 boolean isCapsLockDetectionSupported()
          Check current state of the caps lock state detection.
 boolean isCapsLockOn()
          Gets current state of the caps lock as seen by the login panel.
 boolean isRememberPassword()
           
 boolean isUserNameEnabled()
          Gets current state of the user name field.
protected  void recreateLoginPanel()
          Recreates the login panel, and replaces the current one with the new one
 void removeNotify()
          Notifies this component that it no longer has a parent component.
protected  void savePassword()
          Puts the password into the password store.
 void setBanner(Image img)
          Set the image to use for the banner.
 void setBannerText(String text)
          Set the text to use when creating the banner.
 void setComponentOrientation(ComponentOrientation orient)
          This method adds functionality to support bidi languages within this component
 void setErrorMessage(String errorMessage)
          Sets the error message for this login panel
 void setLocale(Locale l)
          Sets the locale of this component.
 void setLoginService(LoginService service)
          Sets the LoginService for this panel.
 void setMessage(String message)
          Sets a custom message for this login panel
 void setPassword(char[] password)
          Sets the Password for this panel.
 void setPasswordStore(PasswordStore store)
          Sets the PasswordStore for this panel.
 void setSaveMode(JXLoginPane.SaveMode saveMode)
          The save mode indicates whether the "save" password is checked by default.
 void setServers(List<String> servers)
          Sets the list of servers.
protected  void setStatus(JXLoginPane.Status newStatus)
          Change the status
 void setUI(LoginPaneUI ui)
          Sets the look and feel (L&F) object that renders this component.
 void setUserName(String username)
          Sets the User name for this panel.
 void setUserNameEnabled(boolean enabled)
          Enables or disables User name for this panel.
 void setUserNameStore(UserNameStore store)
          Sets the user name store for this panel.
static JXLoginPane.Status showLoginDialog(Component parent, JXLoginPane panel)
          Shows a login dialog.
static JXLoginPane.Status showLoginDialog(Component parent, LoginService svc)
          Shows a login dialog.
static JXLoginPane.Status showLoginDialog(Component parent, LoginService svc, PasswordStore ps, UserNameStore us)
          Shows a login dialog.
static JXLoginPane.Status showLoginDialog(Component parent, LoginService svc, PasswordStore ps, UserNameStore us, List<String> servers)
          Shows a login dialog.
static JXLoginPane.JXLoginFrame showLoginFrame(JXLoginPane panel)
           
static JXLoginPane.JXLoginFrame showLoginFrame(LoginService svc)
          Shows a login frame.
static JXLoginPane.JXLoginFrame showLoginFrame(LoginService svc, PasswordStore ps, UserNameStore us)
           
static JXLoginPane.JXLoginFrame showLoginFrame(LoginService svc, PasswordStore ps, UserNameStore us, List<String> servers)
           
protected  void startLogin()
          Initiates the login procedure.
 void updateUI()
          Notification from the UIManager that the L&F has changed.
 
Methods inherited from class org.jdesktop.swingx.JXPanel
getAlpha, getBackgroundPainter, getEffectiveAlpha, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, isInheritAlpha, isPaintBorderInsets, paint, paintComponent, setAlpha, setBackground, setBackgroundPainter, setInheritAlpha, setPaintBorderInsets, setScrollableTracksViewportHeight, setScrollableTracksViewportWidth
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, paramString, setUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

uiClassID

public static final String uiClassID
UI Class ID

See Also:
Constant Field Values

LOGIN_ACTION_COMMAND

public static final String LOGIN_ACTION_COMMAND
Action key for an Action in the ActionMap that initiates the Login procedure

See Also:
Constant Field Values

CANCEL_LOGIN_ACTION_COMMAND

public static final String CANCEL_LOGIN_ACTION_COMMAND
Action key for an Action in the ActionMap that cancels the Login procedure

See Also:
Constant Field Values
Constructor Detail

JXLoginPane

public JXLoginPane()
Create a JXLoginPane that always accepts the user, never stores passwords or user ids, and has no target servers.

This constructor should NOT be used in a real application. It is provided for compliance to the bean specification and for use with visual editors.


JXLoginPane

public JXLoginPane(LoginService service)
Create a JXLoginPane with the specified LoginService that does not store user ids or passwords and has no target servers.

Parameters:
service - the LoginService to use for logging in

JXLoginPane

public JXLoginPane(LoginService service,
                   PasswordStore passwordStore,
                   UserNameStore userStore)
Create a JXLoginPane with the specified LoginService, PasswordStore, and UserNameStore, but without a server list.

If you do not want to store passwords or user ids, those parameters can be null. SaveMode is autoconfigured from passed in store parameters.

Parameters:
service - the LoginService to use for logging in
passwordStore - the PasswordStore to use for storing password information
userStore - the UserNameStore to use for storing user information

JXLoginPane

public JXLoginPane(LoginService service,
                   PasswordStore passwordStore,
                   UserNameStore userStore,
                   List<String> servers)
Create a JXLoginPane with the specified LoginService, PasswordStore, UserNameStore, and server list.

If you do not want to store passwords or user ids, those parameters can be null. SaveMode is autoconfigured from passed in store parameters.

Setting the server list to null will unset all of the servers. The server list is guaranteed to be non-null.

Parameters:
service - the LoginService to use for logging in
passwordStore - the PasswordStore to use for storing password information
userStore - the UserNameStore to use for storing user information
servers - a list of servers to authenticate against
Method Detail

isCapsLockOn

public boolean isCapsLockOn()
Gets current state of the caps lock as seen by the login panel. The state seen by the login panel and therefore returned by this method can be delayed in comparison to the real caps lock state and displayed by the keyboard light. This is usually the case when component or its text fields are not focused.

Returns:
True when caps lock is on, false otherwise. Returns always false when isCapsLockDetectionSupported() returns false.

isCapsLockDetectionSupported

public boolean isCapsLockDetectionSupported()
Check current state of the caps lock state detection. Note that the value can change after component have been made visible. Due to current problems in locking key state detection by core java detection of the changes in caps lock can be always reliably determined. When component can't guarantee reliable detection it will switch it off. This is usually the case for unsigned applets and webstart invoked application. Since your users are going to pass their password in the component you should always sign it when distributing application over the network.

Returns:
True if changes in caps lock state can be monitored by the component, false otherwise.

getUI

public LoginPaneUI getUI()
Returns the look and feel (L&F) object that renders this component.

Overrides:
getUI in class JPanel
Returns:
the PanelUI object that renders this component

setUI

public void setUI(LoginPaneUI ui)
Sets the look and feel (L&F) object that renders this component.

Parameters:
ui - the LoginPaneUI L&F object
See Also:
UIDefaults.getUI(javax.swing.JComponent)

updateUI

public void updateUI()
Notification from the UIManager that the L&F has changed. Replaces the current UI object with the latest version from the UIManager.

Overrides:
updateUI in class JPanel
See Also:
JComponent.updateUI()

getUIClassID

public String getUIClassID()
Returns the name of the L&F class that renders this component.

Overrides:
getUIClassID in class JPanel
Returns:
the string uiClassID
See Also:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

recreateLoginPanel

protected void recreateLoginPanel()
Recreates the login panel, and replaces the current one with the new one


setComponentOrientation

public void setComponentOrientation(ComponentOrientation orient)
This method adds functionality to support bidi languages within this component

Overrides:
setComponentOrientation in class Component
See Also:
ComponentOrientation

createLoginBanner

protected Image createLoginBanner()
Create and return an image to use for the Banner. This may be overridden to return any image you like


createLoginAction

protected Action createLoginAction()
Create and return an Action for logging in


createCancelAction

protected Action createCancelAction()
Create and return an Action for canceling login


getSaveMode

public JXLoginPane.SaveMode getSaveMode()
Returns:
Returns the saveMode.

setSaveMode

public void setSaveMode(JXLoginPane.SaveMode saveMode)
The save mode indicates whether the "save" password is checked by default. This method makes no difference if the passwordStore is null.

Parameters:
saveMode - The saveMode to set either SAVE_NONE, SAVE_PASSWORD or SAVE_USERNAME

isRememberPassword

public boolean isRememberPassword()

getServers

public List<String> getServers()
Returns:
the List of servers

setServers

public void setServers(List<String> servers)
Sets the list of servers. See the servers field javadoc for more info.


setLoginService

public void setLoginService(LoginService service)
Sets the LoginService for this panel. Setting the login service to null will actually set the service to use NullLoginService.

Parameters:
service - the service to set. If service == null, then a NullLoginService is used.

getLoginService

public LoginService getLoginService()
Gets the LoginService for this panel.

Returns:
service service

setPasswordStore

public void setPasswordStore(PasswordStore store)
Sets the PasswordStore for this panel.

Parameters:
store - PasswordStore

getUserNameStore

public UserNameStore getUserNameStore()
Gets the UserNameStore for this panel.

Returns:
the UserNameStore

setUserNameStore

public void setUserNameStore(UserNameStore store)
Sets the user name store for this panel.

Parameters:
store -

getPasswordStore

public PasswordStore getPasswordStore()
Gets the PasswordStore for this panel.

Returns:
store PasswordStore

setUserName

public void setUserName(String username)
Sets the User name for this panel.

Parameters:
username - User name

setUserNameEnabled

public void setUserNameEnabled(boolean enabled)
Enables or disables User name for this panel.

Parameters:
enabled -

isUserNameEnabled

public boolean isUserNameEnabled()
Gets current state of the user name field. Field can be either disabled (false) for editing or enabled (true).

Returns:
True when user name field is enabled and editable, false otherwise.

getUserName

public String getUserName()
Gets the User name for this panel.

Returns:
the user name

setPassword

public void setPassword(char[] password)
Sets the Password for this panel.

Parameters:
password - Password

getPassword

public char[] getPassword()
Gets the Password for this panel.

Returns:
password Password

getBanner

public Image getBanner()
Return the image used as the banner


setBanner

public void setBanner(Image img)
Set the image to use for the banner. If the img is null, then no image will be displayed.

Parameters:
img - the image to display

setBannerText

public void setBannerText(String text)
Set the text to use when creating the banner. If a custom banner image is specified, then this is ignored. If text is null, then no text is displayed.

Parameters:
text - the text to display

getBannerText

public String getBannerText()
Returns text used when creating the banner


getMessage

public String getMessage()
Returns the custom message for this login panel


setMessage

public void setMessage(String message)
Sets a custom message for this login panel


getErrorMessage

public String getErrorMessage()
Returns the error message for this login panel


setErrorMessage

public void setErrorMessage(String errorMessage)
Sets the error message for this login panel


getStatus

public JXLoginPane.Status getStatus()
Returns the panel's status


setStatus

protected void setStatus(JXLoginPane.Status newStatus)
Change the status


setLocale

public void setLocale(Locale l)
Description copied from class: java.awt.Component
Sets the locale of this component. This is a bound property.

Overrides:
setLocale in class Component
Parameters:
l - the locale to become this component's locale
See Also:
Component.getLocale()

startLogin

protected void startLogin()
Initiates the login procedure. This method is called internally by the LoginAction. This method handles cursor management, and actually calling the LoginService's startAuthentication method. Method will return immediately if asynchronous login is enabled or will block until authentication finishes if getSynchronous() returns true.


cancelLogin

protected void cancelLogin()
Cancels the login procedure. Handles cursor management and interfacing with the LoginService's cancelAuthentication method. Calling this method has an effect only when authentication is still in progress (i.e. after previous call to startAuthentications() and only when authentication is performed asynchronously (getSynchronous() returns false).


savePassword

protected void savePassword()
Puts the password into the password store. If password store is not set, method will do nothing.


removeNotify

public void removeNotify()
Description copied from class: javax.swing.JComponent
Notifies this component that it no longer has a parent component. When this method is invoked, any KeyboardActions set up in the the chain of parent components are removed.

Overrides:
removeNotify in class JComponent
See Also:
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

addNotify

public void addNotify()
Description copied from class: javax.swing.JComponent
Notifies this component that it now has a parent component. When this method is invoked, the chain of parent components is set up with KeyboardAction event listeners.

Overrides:
addNotify in class JComponent
See Also:
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

showLoginDialog

public static JXLoginPane.Status showLoginDialog(Component parent,
                                                 LoginService svc)
Shows a login dialog. This method blocks.

Returns:
The status of the login operation

showLoginDialog

public static JXLoginPane.Status showLoginDialog(Component parent,
                                                 LoginService svc,
                                                 PasswordStore ps,
                                                 UserNameStore us)
Shows a login dialog. This method blocks.

Returns:
The status of the login operation

showLoginDialog

public static JXLoginPane.Status showLoginDialog(Component parent,
                                                 LoginService svc,
                                                 PasswordStore ps,
                                                 UserNameStore us,
                                                 List<String> servers)
Shows a login dialog. This method blocks.

Returns:
The status of the login operation

showLoginDialog

public static JXLoginPane.Status showLoginDialog(Component parent,
                                                 JXLoginPane panel)
Shows a login dialog. This method blocks.

Returns:
The status of the login operation

showLoginFrame

public static JXLoginPane.JXLoginFrame showLoginFrame(LoginService svc)
Shows a login frame. A JFrame is not modal, and thus does not block


showLoginFrame

public static JXLoginPane.JXLoginFrame showLoginFrame(LoginService svc,
                                                      PasswordStore ps,
                                                      UserNameStore us)

showLoginFrame

public static JXLoginPane.JXLoginFrame showLoginFrame(LoginService svc,
                                                      PasswordStore ps,
                                                      UserNameStore us,
                                                      List<String> servers)

showLoginFrame

public static JXLoginPane.JXLoginFrame showLoginFrame(JXLoginPane panel)