|
JCanvas3DOB | |||||||||
| 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.interactivemesh.j3d.community.gui.JCanvas3DOBAbstract
public abstract class JCanvas3DOBAbstract
This class provides Java 3D rendering into a lightweight component which can be added to a Swing container.
It allows to run the Java 3D rendering loop in parallel to the Swing painting loop with synchronized minimal overlapping.
The following events will be redirected to the underlying heavyweight Canvas3D object:
| 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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
| Field Summary | |
|---|---|
protected int |
imageHeight
The height of the image which Swing is drawing. |
protected int |
imageWidth
The width of the image which Swing is drawing. |
protected java.awt.image.BufferedImage |
paintImage
That image of the off-screen buffers which Swing is drawing. |
| 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 | |
|---|---|
protected |
JCanvas3DOBAbstract()
Constructs and initializes a new JCanvas3DOBAbstract object that Java 3D can render into. |
protected |
JCanvas3DOBAbstract(javax.media.j3d.GraphicsConfigTemplate3D template)
Constructs and initializes a new JCanvas3DOBAbstract object that Java 3D can render into, using the specified template. |
protected |
JCanvas3DOBAbstract(javax.media.j3d.GraphicsConfigTemplate3D template,
java.awt.GraphicsDevice device)
Constructs and initializes a new JCanvas3DOBAbstract object that Java 3D can render into, using the specified template and graphics device. |
protected |
JCanvas3DOBAbstract(java.awt.GraphicsDevice device)
Constructs and initializes a new JCanvas3DOBAbstract object that Java 3D can render into, using the specified graphics device. |
| Method Summary | |
|---|---|
void |
ancestorAdded(javax.swing.event.AncestorEvent event)
Called when the source or one of its ancestors is made visible either by setVisible(true) being called or by its being added to the component hierarchy. |
void |
ancestorMoved(javax.swing.event.AncestorEvent event)
Called when either the source or one of its ancestors is moved. |
void |
ancestorRemoved(javax.swing.event.AncestorEvent event)
Called when the source or one of its ancestors is made invisible either by setVisible(false) being called or by its being remove from the component hierarchy. |
protected void |
createOffScreenBuffer(int width,
int height)
Creates new off-screen buffers of the given size. |
javax.media.j3d.Canvas3D |
getOffscreenCanvas3D()
Returns the off-screen heavyweight canvas of this lightweight component. |
protected boolean |
isReadyForDrawing()
Subclasses which overrides paintComponent(Graphics g)
should check if the off-screen buffer is ready for drawing. |
protected void |
offScreenBufferCopied()
Callback used to allow an overriding subclass to execute individual code when the off-screen buffers were copied. |
protected void |
offScreenBufferCreated()
Callback used to allow an overriding subclass to execute individual code when new off-screen buffers were created. |
void |
paintComponent(java.awt.Graphics g)
Flips and paints the result of the 3D rendering. |
protected void |
processComponentKeyEvent(java.awt.event.KeyEvent e)
Redirects event to canvas and to superclass. |
protected void |
processFocusEvent(java.awt.event.FocusEvent e)
Redirects event to canvas and to superclass. |
protected void |
processInputMethodEvent(java.awt.event.InputMethodEvent e)
Redirects event to canvas and to superclass. |
protected void |
processKeyEvent(java.awt.event.KeyEvent e)
Redirects event to canvas and to superclass. |
protected void |
processMouseEvent(java.awt.event.MouseEvent e)
Redirects event to canvas and to superclass. |
protected void |
processMouseMotionEvent(java.awt.event.MouseEvent e)
Redirects event to canvas and to superclass. |
protected void |
processMouseWheelEvent(java.awt.event.MouseWheelEvent e)
Redirects event to canvas and to superclass. |
void |
setBounds(int x,
int y,
int width,
int height)
|
| 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, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processKeyBinding, 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, processHierarchyBoundsEvent, processHierarchyEvent, 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 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected java.awt.image.BufferedImage paintImage
paintComponent(Graphics)protected volatile int imageWidth
protected volatile int imageHeight
| Constructor Detail |
|---|
protected JCanvas3DOBAbstract()
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(),
which might not be the one you should use if you are in a multiscreen environment.
The JCanvas3DOBAbstract is constructed using the following default parameters:
protected JCanvas3DOBAbstract(java.awt.GraphicsDevice device)
device - the screen graphics device that will be used to construct
a GraphicsConfiguration.protected JCanvas3DOBAbstract(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.
protected JCanvas3DOBAbstract(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.AncestorListenerevent - public void ancestorMoved(javax.swing.event.AncestorEvent event)
ancestorMoved in interface javax.swing.event.AncestorListenerevent - public void ancestorRemoved(javax.swing.event.AncestorEvent event)
ancestorRemoved in interface javax.swing.event.AncestorListenerevent - public javax.media.j3d.Canvas3D getOffscreenCanvas3D()
public void setBounds(int x,
int y,
int width,
int height)
setBounds in class java.awt.Componentx - y - width - height -
protected void createOffScreenBuffer(int width,
int height)
Subclasses should call and/or override this method according to its
individual needs. In case of overriding calling
super.createOffScreenBuffer(canvasWidth, canvasHeight)
has to be the last thing to do.
width - the width of the off-screen buffers to createheight - the height of the off-screen buffers to createprotected void offScreenBufferCreated()
This method is called internally by the event-dispatching thread (EDT) and should not be called by applications.
protected void offScreenBufferCopied()
This method is called internally by the event-dispatching thread (EDT) and should not be called by applications.
protected final boolean isReadyForDrawing()
paintComponent(Graphics g)
should check if the off-screen buffer is ready for drawing.
public void paintComponent(java.awt.Graphics g)
paintComponent in class javax.swing.JComponentg - protected void processComponentKeyEvent(java.awt.event.KeyEvent e)
processComponentKeyEvent in class javax.swing.JComponente - protected void processFocusEvent(java.awt.event.FocusEvent e)
processFocusEvent in class java.awt.Componente - protected void processInputMethodEvent(java.awt.event.InputMethodEvent e)
processInputMethodEvent in class java.awt.Componente - protected void processKeyEvent(java.awt.event.KeyEvent e)
processKeyEvent in class javax.swing.JComponente - protected void processMouseEvent(java.awt.event.MouseEvent e)
processMouseEvent in class javax.swing.JComponente - protected void processMouseMotionEvent(java.awt.event.MouseEvent e)
processMouseMotionEvent in class javax.swing.JComponente - protected void processMouseWheelEvent(java.awt.event.MouseWheelEvent e)
processMouseWheelEvent in class java.awt.Componente -
|
JCanvas3DOB | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||