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:
-
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
ConstructorsConstructorDescriptionPanel3D
(Drawable3D drawable) Creates a new panel with the specifiedDrawable3D
to display. -
Method Summary
Modifier and TypeMethodDescriptionReturns theDrawable3D
object that is displayed in this panel.protected Point
Returns the last click point (possiblynull
).double
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
Returns the multiplier for the maximum viewing distance (a multiple of the minimum viewing distance).double
Returns the minimum viewing distance.double
Returns the angle delta for each pan left or right.protected RenderingInfo
Returns the rendering info from the previous call to draw().double
Returns the angle delta for each roll operation.double
Returns the angle delta for each rotate up or down.Returns the view point that is maintained by theDrawable3D
instance on display.void
void
void
void
void
void
void
void
Receives notification of a mouse wheel movement and responds by moving the viewpoint in or out (zooming).void
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
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
Sets a new view point and repaints the panel.void
Unregisters this component with the tool tip manager.void
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.
-