|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
com.sun.j3d.exp.swing.JCanvas3D
public class JCanvas3D
This class provides a lightweight capability to Java 3D. The component
handles bidirectional messaging between swing and Java 3D so that repaint
ordonned by swing are sent to the universe if necessary and refreshes from
the universe are painted accordingly. In order to get responsive interfaces
during layout changes, the canvas has a feature (disabled by default) that
lets true resizes occur only after a timer expires. Images between real
resizes can eventually be slightly wrong and pixelated, but their display
will be stutterless.
Lightweight canvas also handles redirection to heavyweight canvas for the
following events:
- InputMethodEvent
- KeyEvent
- FocusEvent
- ComponentKeyEvent
- MouseWheelEvent
- MouseEvent
- MouseMotionEvent
When Swing is waiting for a canvas to be retrieved and that canvas is in
rendering stage,a loop takes place, which includes small calls to wait().
The canvas status is tested for readiness before and after the wait(). If
the canvas is not ready to be retrieved after the wait(), counter is
decremented and control is given back to awt thread, which will repaint old
buffer. If the loop goes over a certain amount of iterations, the canvas is
declared 'crashed' and won't be updated anymore. This was done so that a
crashed canvas/universe does not remove control over your GUI and does not
leave you with a frozen application. In current implementation, the delay
before a canvas is declared crashed is of :
30 Math.max(20.0, getView().getMinimumFrameCycleTime() )
getLightweightComponent()
,
setResizeValidationDelay()
,
setResizeMode()
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
javax.swing.JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Component |
---|
java.awt.Component.BaselineResizeBehavior |
Field Summary | |
---|---|
static int |
RESIZE_DELAYED
Resizing the canvas or component will be done if no resizing occurs after expiration of a certain delay. |
static int |
RESIZE_IMMEDIATELY
Resizing the canvas or component will be done immediately. |
Fields inherited from class javax.swing.JComponent |
---|
TOOL_TIP_TEXT_KEY, 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 | |
---|---|
JCanvas3D()
Constructs and initializes a new JCanvas3D object that Java 3D can render into. |
|
JCanvas3D(javax.media.j3d.GraphicsConfigTemplate3D template)
Constructs and initializes a new Canvas3D object that Java 3D can render into, using the specified template. |
|
JCanvas3D(javax.media.j3d.GraphicsConfigTemplate3D template,
java.awt.GraphicsDevice device)
Constructs and initializes a new Canvas3D object that Java 3D can render into, using the specified template and graphics device. |
|
JCanvas3D(java.awt.GraphicsDevice device)
Constructs and initializes a new Canvas3D object that Java 3D can render into, using the specified graphics device. |
Method Summary | |
---|---|
void |
ancestorAdded(javax.swing.event.AncestorEvent event)
|
void |
ancestorMoved(javax.swing.event.AncestorEvent event)
|
void |
ancestorRemoved(javax.swing.event.AncestorEvent event)
|
javax.media.j3d.Canvas3D |
getOffscreenCanvas3D()
Returns the offscreen heavyweight canvas of that lightweight component. |
int |
getResizeMode()
Retrieves the resize mode for that component. |
int |
getResizeValidationDelay()
Retrieves the validation delay for that canvas, whatever the resize mode is set to. |
void |
paintComponent(java.awt.Graphics g)
Paints the result of the rendering. |
void |
setBounds(int x,
int y,
int width,
int height)
|
void |
setResizeMode(int resizeMode)
Sets resize mode to be used on this component. |
void |
setResizeValidationDelay(int resizeValidationDelay)
Sets the validation delay for the component. |
Methods inherited from class javax.swing.JPanel |
---|
getAccessibleContext, getUI, getUIClassID, setUI, updateUI |
Methods inherited from class javax.swing.JComponent |
---|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, 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, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
Methods inherited from class java.awt.Container |
---|
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate |
Methods inherited from class java.awt.Component |
---|
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, 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 |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int RESIZE_IMMEDIATELY
setResizeMode()
,
Constant Field Valuespublic static final int RESIZE_DELAYED
setResizeMode()
,
Constant Field ValuesConstructor Detail |
---|
public JCanvas3D()
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()
,
which might not be the one you should use if you are in a multiscreen environment.
The JCanvas3D is constructed using the following default parameters:
public JCanvas3D(java.awt.GraphicsDevice device)
device
- the screen graphics device that will be used to construct
a GraphicsConfiguration.public JCanvas3D(javax.media.j3d.GraphicsConfigTemplate3D template)
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()
,
which might not be the one you should use if you are
in a multiscreen environment.
template
- The template that will be used to construct a
GraphicsConfiguration. The stereo and doublebuffer properties
are forced to UNNECESSARY.public JCanvas3D(javax.media.j3d.GraphicsConfigTemplate3D template, java.awt.GraphicsDevice device)
template
- The template that will be used to construct a
GraphicsConfiguration. The stereo and doublebuffer properties
are forced to UNNECESSARY.device
- the screen graphics device that will be used to construct
a GraphicsConfiguration in conjunction with the template.Method Detail |
---|
public void ancestorAdded(javax.swing.event.AncestorEvent event)
ancestorAdded
in interface javax.swing.event.AncestorListener
event
- public void ancestorMoved(javax.swing.event.AncestorEvent event)
ancestorMoved
in interface javax.swing.event.AncestorListener
event
- public void ancestorRemoved(javax.swing.event.AncestorEvent event)
ancestorRemoved
in interface javax.swing.event.AncestorListener
event
- public javax.media.j3d.Canvas3D getOffscreenCanvas3D()
public int getResizeMode()
public int getResizeValidationDelay()
public void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
g
- public void setBounds(int x, int y, int width, int height)
setBounds
in class java.awt.Component
x
- y
- width
- height
- public void setResizeMode(int resizeMode)
resizeMode
- can be one of RESIZE_IMMEDIATELY or RESIZE_DELAYEDRESIZE_IMMEDIATELY
,
RESIZE_DELAYED
public void setResizeValidationDelay(int resizeValidationDelay)
resizeValidationDelay
- the delay before a real resize would occur.RESIZE_IMMEDIATELY
,
RESIZE_DELAYED
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |