com.eviware.soapui.support.swing
Class JXButtonPanel

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 com.eviware.soapui.support.swing.JXButtonPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
JButtonBar

public class JXButtonPanel
extends javax.swing.JPanel

This is a JPanel subclass which provides a special functionality for its children buttons components. It makes it possible to transfer focus from button to button with help of arrows keys.

The following example shows how to enable cyclic focus transfer

 import org.jdesktop.swinghelper.buttonpanel.*;
 import javax.swing.*;
 
 public class SimpleDemo
 {
        public static void main( String[] args ) throws Exception
        {
                SwingUtilities.invokeLater( new Runnable()
                {
                        public void run()
                        {
                                final JFrame frame = new JFrame();
                                frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
 
                                JXButtonPanel panel = new JXButtonPanel();
                                panel.setCyclic( true );
 
                                panel.add( new JButton( "One" ) );
                                panel.add( new JButton( "Two" ) );
                                panel.add( new JButton( "Three" ) );
 
                                frame.add( panel );
                                frame.setSize( 200, 200 );
                                frame.setLocationRelativeTo( null );
                                frame.setVisible( true );
                        }
                } );
        }
 }
 
If your buttons inside JXButtonPanel are added to one ButtonGroup arrow keys will transfer selection between them as well as they do it for focus

Note: you can control this behaviour with setGroupSelectionFollowFocus(boolean)

 import org.jdesktop.swinghelper.buttonpanel.*;
 import javax.swing.*;
 
 public class RadioButtonDemo
 {
        public static void main( String[] args ) throws Exception
        {
                SwingUtilities.invokeLater( new Runnable()
                {
                        public void run()
                        {
                                final JFrame frame = new JFrame();
                                frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
 
                                JXButtonPanel panel = new JXButtonPanel();
                                ButtonGroup group = new ButtonGroup();
 
                                JRadioButton rb1 = new JRadioButton( "One" );
                                panel.add( rb1 );
                                group.add( rb1 );
                                JRadioButton rb2 = new JRadioButton( "Two" );
                                panel.add( rb2 );
                                group.add( rb2 );
                                JRadioButton rb3 = new JRadioButton( "Three" );
                                panel.add( rb3 );
                                group.add( rb3 );
 
                                rb1.setSelected( true );
                                frame.add( panel );
 
                                frame.setSize( 200, 200 );
                                frame.setLocationRelativeTo( null );
                                frame.setVisible( true );
                        }
                } );
        }
 }
 

Author:
Alexander Potochkin https://swinghelper.dev.java.net/ http://weblogs.java.net/blog/alexfromsun/
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
 
Field Summary
 
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
JXButtonPanel()
          
JXButtonPanel(boolean isDoubleBuffered)
          
JXButtonPanel(java.awt.LayoutManager layout)
          
JXButtonPanel(java.awt.LayoutManager layout, boolean isDoubleBuffered)
          
 
Method Summary
 boolean isCyclic()
          Returns whether arrow keys should support cyclic focus traversal ordering for for this JXButtonPanel.
 boolean isGroupSelectionFollowFocus()
          Returns whether arrow keys should transfer button's selection as well as focus for this JXButtonPanel.
 void setCyclic(boolean isCyclic)
          Sets whether arrow keys should support cyclic focus traversal ordering for this JXButtonPanel.
 void setGroupSelectionFollowFocus(boolean groupSelectionFollowFocus)
          Sets whether arrow keys should transfer button's selection as well as focus for this JXButtonPanel.
 
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, getWidth, getVisibleRect, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, 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
 

Constructor Detail

JXButtonPanel

public JXButtonPanel()


JXButtonPanel

public JXButtonPanel(java.awt.LayoutManager layout)


JXButtonPanel

public JXButtonPanel(boolean isDoubleBuffered)


JXButtonPanel

public JXButtonPanel(java.awt.LayoutManager layout,
                     boolean isDoubleBuffered)

Method Detail

isCyclic

public boolean isCyclic()
Returns whether arrow keys should support cyclic focus traversal ordering for for this JXButtonPanel.


setCyclic

public void setCyclic(boolean isCyclic)
Sets whether arrow keys should support cyclic focus traversal ordering for this JXButtonPanel.


isGroupSelectionFollowFocus

public boolean isGroupSelectionFollowFocus()
Returns whether arrow keys should transfer button's selection as well as focus for this JXButtonPanel.

Note: this property affects buttons which are added to a ButtonGroup


setGroupSelectionFollowFocus

public void setGroupSelectionFollowFocus(boolean groupSelectionFollowFocus)
Sets whether arrow keys should transfer button's selection as well as focus for this JXButtonPanel.

Note: this property affects buttons which are added to a ButtonGroup



Copyright © 2005-2009 eviware.com. All Rights Reserved.