Class StandardDialogPane

  • All Implemented Interfaces:
    ButtonNames, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
    Direct Known Subclasses:
    MultiplePageDialogPane, StandardDialog.DefaultStandardDialogPane

    public abstract class StandardDialogPane
    extends javax.swing.JPanel
    implements ButtonNames
    StandardDialogPane is the content pane of StandardDialog. It can also be used when you want the template of StandardDialog but you don't want to use JDialog.
    • Introduce laziness. The content will not be filled until pack() or show() be called.
    • Default action and cancel action. User can set default action and cancel action of this dialog. By default, ENTER key will trigger the default action and ESC key will trigger the cancel action and set the dialog result to RESULT_CANCELLED.
    • Divide the whole ContentPane of the dialog into three parts - content panel, button panel and banner panel. By default, they are added to CENTER, SOUTH and NORTH of a BorderLayout respectively. There isn't anything special about this. However if all your dialogs use this pattern, it will automatically make the user interface more consistent.

    This class is abstract. Subclasses need to implement createBannerPanel(), createButtonPanel() and createContentPanel()

    StandardDialogPane has lazy loading feature. So when you are done setup the page list, you need to call initComponents() to initialize everything. This method will be called automatically if the dialog pane is added to StandardDialog. Basically, if you want to add StandardDialogPane without StandardDialog, the following code are required for the pane to be ready to add to its parent container.

     pane = new StandardDialogPane() {
         public JComponent createBannerPanel() {
             return null;
         }
     

    public JComponent createContentPanel() { return null; }

    public ButtonPanel createButtonPanel() { return null; } }; pane.initComponents();

    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract javax.swing.JComponent createBannerPanel()
      Subclasses should implement this method to create the banner panel.
      abstract ButtonPanel createButtonPanel()
      Subclasses should implement this method to create the button panel.
      abstract javax.swing.JComponent createContentPanel()
      Subclasses should implement this method to create the content panel.
      javax.swing.JComponent getBannerPanel()
      Gets the banner panel created by createBannerPanel.
      ButtonPanel getButtonPanel()
      Gets the banner panel created by createButtonPanel.
      javax.swing.JComponent getContentPanel()
      Gets the banner panel created by createContentPanel.
      javax.swing.Action getDefaultAction()
      Gets the default action.
      javax.swing.Action getDefaultCancelAction()
      Get default cancel action.
      java.awt.Component getInitFocusedComponent()
      Gets the initial focused component when dialog is shown.
      void initComponents()
      Call three createXxxPanel methods and layout them using BorderLayout.
      protected void layoutComponents​(java.awt.Component bannerPanel, java.awt.Component contentPanel, ButtonPanel buttonPanel)
      Setups the layout for the three panels - banner panel, content panel and button panel.
      void setDefaultAction​(javax.swing.Action defaultAction)
      Sets the default action.
      void setDefaultCancelAction​(javax.swing.Action defaultCancelAction)
      Set default cancel action.
      void setInitFocusedComponent​(java.awt.Component initFocusedComponent)
      Sets the initial focused component when dialog is shown.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • _bannerPanel

        protected javax.swing.JComponent _bannerPanel
      • _contentPanel

        protected javax.swing.JComponent _contentPanel
      • PROPERTY_CANCEL_ACTION

        public static final java.lang.String PROPERTY_CANCEL_ACTION
        See Also:
        Constant Field Values
      • PROPERTY_DEFAULT_ACTION

        public static final java.lang.String PROPERTY_DEFAULT_ACTION
        See Also:
        Constant Field Values
    • Constructor Detail

      • StandardDialogPane

        public StandardDialogPane()
                           throws java.awt.HeadlessException
        Throws:
        java.awt.HeadlessException
    • Method Detail

      • getDefaultCancelAction

        public javax.swing.Action getDefaultCancelAction()
        Get default cancel action. Default cancel action will be triggered when ESC is pressed.
        Returns:
        the default cancel action
      • setDefaultCancelAction

        public void setDefaultCancelAction​(javax.swing.Action defaultCancelAction)
        Set default cancel action. Default cancel action will be triggered when ESC is pressed.
        Parameters:
        defaultCancelAction - the default cancel action
      • getDefaultAction

        public javax.swing.Action getDefaultAction()
        Gets the default action. Default action will be trigger when ENTEY key is pressed.
        Returns:
        the default action.
      • setDefaultAction

        public void setDefaultAction​(javax.swing.Action defaultAction)
        Sets the default action. Default action will be trigger when ENTEY key is pressed.
        Parameters:
        defaultAction - the default action.
      • initComponents

        public void initComponents()
        Call three createXxxPanel methods and layout them using BorderLayout. By default, banner panel, content panel and button panel are added to NORTH, CENTER and SOUTH of BorderLayout respectively.

        You can override this method if you want to layout them in another way.

      • layoutComponents

        protected void layoutComponents​(java.awt.Component bannerPanel,
                                        java.awt.Component contentPanel,
                                        ButtonPanel buttonPanel)
        Setups the layout for the three panels - banner panel, content panel and button panel. By default, we will use BorderLayout, put the content panel in the middle, banner panel on the top and button panel either right or bottom depending on its alignment.

        Subclass can override it to do your own layout. The three panels are the three parameters.

        Parameters:
        bannerPanel - the banner panel
        contentPanel - the content panel
        buttonPanel - the button panel
      • getInitFocusedComponent

        public java.awt.Component getInitFocusedComponent()
        Gets the initial focused component when dialog is shown.
        Returns:
        the initial focused component
      • setInitFocusedComponent

        public void setInitFocusedComponent​(java.awt.Component initFocusedComponent)
        Sets the initial focused component when dialog is shown.
        Parameters:
        initFocusedComponent - the initial focused component
      • getBannerPanel

        public javax.swing.JComponent getBannerPanel()
        Gets the banner panel created by createBannerPanel.
        Returns:
        the banner panel.
      • getContentPanel

        public javax.swing.JComponent getContentPanel()
        Gets the banner panel created by createContentPanel.
        Returns:
        the content panel.
      • getButtonPanel

        public ButtonPanel getButtonPanel()
        Gets the banner panel created by createButtonPanel.
        Returns:
        the button panel.
      • createBannerPanel

        public abstract javax.swing.JComponent createBannerPanel()
        Subclasses should implement this method to create the banner panel. By default banner panel will appear on top of the dialog unless you override initComponent() method. Banner panel is really used to balance the layout of dialog to make the dialog looking good. However it can be used to show some help text. It is highly recommended to use our BannerPanel

        If subclass doesn't want to have a banner panel, just return null.

        Returns:
        the banner panel.
      • createContentPanel

        public abstract javax.swing.JComponent createContentPanel()
        Subclasses should implement this method to create the content panel. This is the main panel of the dialog which will be added to the center of the dialog. Subclass should never return null.
        Returns:
        the content panel.
      • createButtonPanel

        public abstract ButtonPanel createButtonPanel()
        Subclasses should implement this method to create the button panel. 90% of dialogs have buttons. It is highly recommended to use our ButtonPanel.
        Returns:
        the button panel.
        See Also:
        ButtonPanel