Spec-Zone.ru › OpenJavaFX 8
javafx.embed.swing

Class JFXPanel

java.lang.Object
  • java.awt.Component
    • java.awt.Container
      • javax.swing.JComponent
        • javafx.embed.swing.JFXPanel

All Implemented Interfaces:

ImageObserver, MenuContainer, Serializable



public class JFXPanel
extends JComponent
JFXPanel is a component to embed JavaFX content into Swing applications. The content to be displayed is specified with the setScene(javafx.scene.Scene) method that accepts an instance of JavaFX Scene. After the scene is assigned, it gets repainted automatically. All the input and focus events are forwarded to the scene transparently to the developer.

There are some restrictions related to JFXPanel. As a Swing component, it should only be accessed from the event dispatch thread, except the setScene(javafx.scene.Scene) method, which can be called either on the event dispatch thread or on the JavaFX application thread.

Here is a typical pattern how JFXPanel can used:

public class Test {

         private static void initAndShowGUI() {
             // This method is invoked on Swing thread
             JFrame frame = new JFrame("FX");
             final JFXPanel fxPanel = new JFXPanel();
             frame.add(fxPanel);
             frame.setVisible(true);

             Platform.runLater(new Runnable() {
                 @Override
                 public void run() {
                     initFX(fxPanel);
                 }
             });
         }

         private static void initFX(JFXPanel fxPanel) {
             // This method is invoked on JavaFX thread
             Scene scene = createScene();
             fxPanel.setScene(scene);
         }

         public static void main(String[] args) {
             SwingUtilities.invokeLater(new Runnable() {
                 @Override
                 public void run() {
                     initAndShowGUI();
                 }
             });
         }
     }

Since:

JavaFX 2.0

See Also:

Serialized Form

  • Nested Class Summary

    • 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 and Description
    JFXPanel()
    Creates a new JFXPanel object.
  • Method Summary

    All MethodsInstance MethodsConcrete Methods
    Modifier and Type Method and Description
    void addNotify()
    Notifies this component that it now has a parent component.
    InputMethodRequests getInputMethodRequests()
    Dimension getPreferredSize()
    Returns the preferred size of this JFXPanel, either previously set with JComponent.setPreferredSize(Dimension) or based on the content of the JavaFX scene attached to this JFXPanel.
    Scene getScene()
    Returns the JavaFX scene attached to this JFXPanel.
    boolean isOpaque()
    JFXPanel's opacity is controlled by the JavaFX content which is displayed in this component, so this method overrides JComponent.isOpaque() to always return a false value.
    protected void paintComponent(Graphics g)
    Overrides the JComponent.paintComponent(Graphics) method to paint the content of the JavaFX scene attached to this JFXpanel.
    protected void processComponentEvent(ComponentEvent e)
    Overrides the Component.processComponentEvent(ComponentEvent) method to dispatch ComponentEvent.COMPONENT_RESIZED events to the JavaFX scene attached to this JFXPanel.
    protected void processFocusEvent(FocusEvent e)
    Overrides the Component.processFocusEvent(FocusEvent) method to dispatch focus events to the JavaFX scene attached to this JFXPanel.
    protected void processHierarchyBoundsEvent(HierarchyEvent e)
    Overrides the Component.processHierarchyBoundsEvent(HierarchyEvent) method to process HierarchyEvent.ANCESTOR_MOVED events and update the JavaFX scene location to match the JFXPanel location on the screen.
    protected void processHierarchyEvent(HierarchyEvent e)
    protected void processInputMethodEvent(InputMethodEvent e)
    protected void processKeyEvent(KeyEvent e)
    Overrides the Component.processKeyEvent(KeyEvent) method to dispatch the key event to the JavaFX scene attached to this JFXPanel.
    protected void processMouseEvent(MouseEvent e)
    Overrides the Component.processMouseEvent(MouseEvent) method to dispatch the mouse event to the JavaFX scene attached to this JFXPanel.
    protected void processMouseMotionEvent(MouseEvent e)
    Overrides the Component.processMouseMotionEvent(MouseEvent) method to dispatch the mouse motion event to the JavaFX scene attached to this JFXPanel.
    protected void processMouseWheelEvent(MouseWheelEvent e)
    Overrides the Component.processMouseWheelEvent(MouseWheelEvent) method to dispatch the mouse wheel event to the JavaFX scene attached to this JFXPanel.
    void removeNotify()
    Notifies this component that it no longer has a parent component.
    void setOpaque(boolean opaque)
    JFXPanel's opacity is controlled by the JavaFX content which is displayed in this component, so this method overrides JComponent.setOpaque(boolean) to only accept a false value.
    void setScene(Scene newScene)
    Attaches a Scene object to display in this JFXPanel.
    • Methods inherited from class javax.swing.JComponent

      addAncestorListener, 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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
    • 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, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, 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, transferFocusBackward, transferFocusUpCycle
    • Methods inherited from class java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Detail

    • JFXPanel

      public JFXPanel()
      Creates a new JFXPanel object.

      Implementation note: when the first JFXPanel object is created, it implicitly initializes the JavaFX runtime. This is the preferred way to initialize JavaFX in Swing.

  • Method Detail

    • getScene

      public Scene getScene()
      Returns the JavaFX scene attached to this JFXPanel.

      Returns:

      the Scene attached to this JFXPanel

    • setScene

      public void setScene(Scene newScene)
      Attaches a Scene object to display in this JFXPanel. This method can be called either on the event dispatch thread or the JavaFX application thread.

      Parameters:

      newScene - a scene to display in this JFXpanel

      See Also:

      EventQueue.isDispatchThread(), Platform.isFxApplicationThread()

    • setOpaque

      public final void setOpaque(boolean opaque)
      JFXPanel's opacity is controlled by the JavaFX content which is displayed in this component, so this method overrides JComponent.setOpaque(boolean) to only accept a false value. If this method is called with a true value, no action is performed.

      Overrides:

      setOpaque in class JComponent

      Parameters:

      opaque - must be false

    • isOpaque

      public final boolean isOpaque()
      JFXPanel's opacity is controlled by the JavaFX content which is displayed in this component, so this method overrides JComponent.isOpaque() to always return a false value.

      Overrides:

      isOpaque in class JComponent

      Returns:

      a false value

    • processMouseEvent

      protected void processMouseEvent(MouseEvent e)
      Overrides the Component.processMouseEvent(MouseEvent) method to dispatch the mouse event to the JavaFX scene attached to this JFXPanel.

      Overrides:

      processMouseEvent in class JComponent

      Parameters:

      e - the mouse event to dispatch to the JavaFX scene

    • processMouseMotionEvent

      protected void processMouseMotionEvent(MouseEvent e)
      Overrides the Component.processMouseMotionEvent(MouseEvent) method to dispatch the mouse motion event to the JavaFX scene attached to this JFXPanel.

      Overrides:

      processMouseMotionEvent in class JComponent

      Parameters:

      e - the mouse motion event to dispatch to the JavaFX scene

    • processMouseWheelEvent

      protected void processMouseWheelEvent(MouseWheelEvent e)
      Overrides the Component.processMouseWheelEvent(MouseWheelEvent) method to dispatch the mouse wheel event to the JavaFX scene attached to this JFXPanel.

      Overrides:

      processMouseWheelEvent in class Component

      Parameters:

      e - the mouse wheel event to dispatch to the JavaFX scene

    • processKeyEvent

      protected void processKeyEvent(KeyEvent e)
      Overrides the Component.processKeyEvent(KeyEvent) method to dispatch the key event to the JavaFX scene attached to this JFXPanel.

      Overrides:

      processKeyEvent in class JComponent

      Parameters:

      e - the key event to dispatch to the JavaFX scene

    • processComponentEvent

      protected void processComponentEvent(ComponentEvent e)
      Overrides the Component.processComponentEvent(ComponentEvent) method to dispatch ComponentEvent.COMPONENT_RESIZED events to the JavaFX scene attached to this JFXPanel. The JavaFX scene object is then resized to match the JFXPanel size.

      Overrides:

      processComponentEvent in class Component

      Parameters:

      e - the component event to dispatch to the JavaFX scene

    • processHierarchyBoundsEvent

      protected void processHierarchyBoundsEvent(HierarchyEvent e)
      Overrides the Component.processHierarchyBoundsEvent(HierarchyEvent) method to process HierarchyEvent.ANCESTOR_MOVED events and update the JavaFX scene location to match the JFXPanel location on the screen.

      Overrides:

      processHierarchyBoundsEvent in class Component

      Parameters:

      e - the hierarchy bounds event to process

    • processHierarchyEvent

      protected void processHierarchyEvent(HierarchyEvent e)

      Overrides:

      processHierarchyEvent in class Component

    • processFocusEvent

      protected void processFocusEvent(FocusEvent e)
      Overrides the Component.processFocusEvent(FocusEvent) method to dispatch focus events to the JavaFX scene attached to this JFXPanel.

      Overrides:

      processFocusEvent in class Component

      Parameters:

      e - the focus event to dispatch to the JavaFX scene

    • processInputMethodEvent

      protected void processInputMethodEvent(InputMethodEvent e)

      Overrides:

      processInputMethodEvent in class Component

    • paintComponent

      protected void paintComponent(Graphics g)
      Overrides the JComponent.paintComponent(Graphics) method to paint the content of the JavaFX scene attached to this JFXpanel.

      Overrides:

      paintComponent in class JComponent

      Parameters:

      g - the Graphics context in which to paint

      See Also:

      isOpaque()

    • getPreferredSize

      public Dimension getPreferredSize()
      Returns the preferred size of this JFXPanel, either previously set with JComponent.setPreferredSize(Dimension) or based on the content of the JavaFX scene attached to this JFXPanel.

      Overrides:

      getPreferredSize in class JComponent

      Returns:

      prefSize this JFXPanel preferred size

    • addNotify

      public void addNotify()
      Notifies this component that it now has a parent component. When this method is invoked, the chain of parent components is set up with KeyboardAction event listeners.

      Overrides:

      addNotify in class JComponent

    • getInputMethodRequests

      public InputMethodRequests getInputMethodRequests()

      Overrides:

      getInputMethodRequests in class Component

    • removeNotify

      public void removeNotify()
      Notifies this component that it no longer has a parent component. When this method is invoked, any KeyboardActions set up in the the chain of parent components are removed.

      Overrides:

      removeNotify in class JComponent

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API