java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.jfree.chart3d.graphics3d.swing.Panel3D
- All Implemented Interfaces:
MouseListener
,MouseMotionListener
,MouseWheelListener
,ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
- Direct Known Subclasses:
Chart3DPanel
public class Panel3D extends JPanel implements MouseListener, MouseMotionListener, MouseWheelListener
A panel that displays a set of 3D objects from a particular viewing point.
The view point is maintained by the
NOTE: This class is serializable, but the serialization format is subject to change in future releases and should not be relied upon for persisting instances of this class.
Drawable3D
but the panel
provides convenience methods to get/set it.
NOTE: This class is serializable, but the serialization format is subject to change in future releases and should not be relied upon for persisting instances of this class.
- See Also:
- Serialized Form
-
Nested Class Summary
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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Constructors Constructor Description Panel3D(Drawable3D drawable)
Creates a new panel with the specifiedDrawable3D
to display. -
Method Summary
Modifier and Type Method Description Drawable3D
getDrawable()
Returns theDrawable3D
object that is displayed in this panel.protected Point
getLastClickPoint()
Returns the last click point (possiblynull
).double
getMargin()
Returns the margin, expressed as a percentage, that controls the amount of space to leave around the edges of the 3D content when thezoomToFit()
method is called.double
getMaxViewingDistanceMultiplier()
Returns the multiplier for the maximum viewing distance (a multiple of the minimum viewing distance).double
getMinViewingDistance()
Returns the minimum viewing distance.double
getPanIncrement()
Returns the angle delta for each pan left or right.protected RenderingInfo
getRenderingInfo()
Returns the rendering info from the previous call to draw().double
getRollIncrement()
Returns the angle delta for each roll operation.double
getRotateIncrement()
Returns the angle delta for each rotate up or down.ViewPoint3D
getViewPoint()
Returns the view point that is maintained by theDrawable3D
instance on display.void
mouseClicked(MouseEvent e)
void
mouseDragged(MouseEvent e)
void
mouseEntered(MouseEvent e)
void
mouseExited(MouseEvent e)
void
mouseMoved(MouseEvent e)
void
mousePressed(MouseEvent e)
void
mouseReleased(MouseEvent e)
void
mouseWheelMoved(MouseWheelEvent mwe)
Receives notification of a mouse wheel movement and responds by moving the viewpoint in or out (zooming).void
paintComponent(Graphics g)
Paints the panel by asking the drawable to render a 2D projection of the objects it is managing.void
panLeftRight(double angle)
Rotates the view point around from left to right by the specified angle and repaints the 3D scene.void
registerForTooltips()
Registers this component with the tool tip manager.void
setMargin(double margin)
Sets the margin that controls the amount of space to leave around the edges of the 3D content when thezoomToFit()
method is called.void
setMaxViewingDistanceMultiplier(double multiplier)
Sets the multiplier used to calculate the maximum viewing distance.void
setPanIncrement(double panIncrement)
Sets the standard increment for panning left and right (a rotation specified in radians).void
setRollIncrement(double rollIncrement)
Sets the roll increment in radians.void
setRotateIncrement(double rotateIncrement)
Sets the vertical (up and down) rotation increment (in radians).void
setViewPoint(ViewPoint3D vp)
Sets a new view point and repaints the panel.void
unregisterForTooltips()
Unregisters this component with the tool tip manager.void
zoomToFit()
Adjusts the viewing distance so that the chart fits the current panel size.void
zoomToFit(Dimension2D size)
Adjusts the viewing distance so that the chart fits the specified size.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, 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
-
Constructor Details
-
Panel3D
Creates a new panel with the specifiedDrawable3D
to display.- Parameters:
drawable
- the content to display (null
not permitted).
-
-
Method Details
-
getDrawable
Returns theDrawable3D
object that is displayed in this panel. This is specified via the panel constructor and there is no setter method to change it.- Returns:
- The
Drawable3D
object (nevernull
).
-
getMargin
Returns the margin, expressed as a percentage, that controls the amount of space to leave around the edges of the 3D content when thezoomToFit()
method is called. The default value is0.25
(25 percent).- Returns:
- The margin.
-
setMargin
Sets the margin that controls the amount of space to leave around the edges of the 3D content when thezoomToFit()
method is called.- Parameters:
margin
- the margin (as a percentage, where 0.25 = 25 percent).
-
getMinViewingDistance
Returns the minimum viewing distance. Zooming by mouse wheel or other means will not move the viewing point closer than this. The value is computed in the constructor from the dimensions of the drawable object.- Returns:
- The minimum viewing distance.
-
getMaxViewingDistanceMultiplier
Returns the multiplier for the maximum viewing distance (a multiple of the minimum viewing distance). The default value is8.0
.- Returns:
- The multiplier.
- Since:
- 1.3
-
setMaxViewingDistanceMultiplier
Sets the multiplier used to calculate the maximum viewing distance.- Parameters:
multiplier
- the new multiplier.- Since:
- 1.3
-
getPanIncrement
Returns the angle delta for each pan left or right. The default value isMath.PI / 60
.- Returns:
- The angle delta (in radians).
-
setPanIncrement
Sets the standard increment for panning left and right (a rotation specified in radians).- Parameters:
panIncrement
- the increment (in radians).
-
getRotateIncrement
Returns the angle delta for each rotate up or down. The default value isMath.PI / 60
.- Returns:
- The angle delta (in radians).
-
setRotateIncrement
Sets the vertical (up and down) rotation increment (in radians).- Parameters:
rotateIncrement
- the increment (in radians).
-
getRollIncrement
Returns the angle delta for each roll operation. The default value isMath.PI / 60
.- Returns:
- The angle delta (in radians).
-
setRollIncrement
Sets the roll increment in radians.- Parameters:
rollIncrement
- the increment (in radians).
-
getViewPoint
Returns the view point that is maintained by theDrawable3D
instance on display.- Returns:
- The view point (never
null
).
-
setViewPoint
Sets a new view point and repaints the panel.- Parameters:
vp
- the view point (null
not permitted).
-
getLastClickPoint
Returns the last click point (possiblynull
).- Returns:
- The last click point (possibly
null
).
-
getRenderingInfo
Returns the rendering info from the previous call to draw().- Returns:
- The rendering info (possibly
null
).
-
panLeftRight
Rotates the view point around from left to right by the specified angle and repaints the 3D scene. The direction relative to the world coordinates depends on the orientation of the view point.- Parameters:
angle
- the angle of rotation (in radians).
-
zoomToFit
Adjusts the viewing distance so that the chart fits the current panel size. A margin is left (seegetMargin()
around the edges to leave room for labels etc. -
zoomToFit
Adjusts the viewing distance so that the chart fits the specified size. A margin is left (seegetMargin()
around the edges to leave room for labels etc.- Parameters:
size
- the target size (null
not permitted).
-
paintComponent
Paints the panel by asking the drawable to render a 2D projection of the objects it is managing.- Overrides:
paintComponent
in classJComponent
- Parameters:
g
- the graphics target (null
not permitted, assumed to be an instance ofGraphics2D
).
-
registerForTooltips
Registers this component with the tool tip manager.- Since:
- 1.3
-
unregisterForTooltips
Unregisters this component with the tool tip manager.- Since:
- 1.3
-
mouseClicked
- Specified by:
mouseClicked
in interfaceMouseListener
-
mouseEntered
- Specified by:
mouseEntered
in interfaceMouseListener
-
mouseExited
- Specified by:
mouseExited
in interfaceMouseListener
-
mousePressed
- Specified by:
mousePressed
in interfaceMouseListener
-
mouseReleased
- Specified by:
mouseReleased
in interfaceMouseListener
-
mouseDragged
- Specified by:
mouseDragged
in interfaceMouseMotionListener
-
mouseMoved
- Specified by:
mouseMoved
in interfaceMouseMotionListener
-
mouseWheelMoved
Receives notification of a mouse wheel movement and responds by moving the viewpoint in or out (zooming).- Specified by:
mouseWheelMoved
in interfaceMouseWheelListener
- Parameters:
mwe
- the mouse wheel event.
-