import java.awt.BorderLayout; 
import javafx.application.Application; 
import javafx.embed.swing.JFXPanel; 
import javafx.embed.swing.SwingNode; 
import javafx.scene.Scene; 
import javafx.scene.control.DatePicker; 
import javafx.scene.layout.BorderPane; 
import javafx.stage.Stage; 
import javax.swing.JPanel; 

public class JavaFXApplication9 extends Application 
{ 
   
  @Override 
  public void start(Stage stage) throws Exception 
  { 
    stage.setScene(getMainJavaFxScene()); 
    stage.show(); 
  } 
   
  private static Scene getMainJavaFxScene() 
  { 
    BorderPane root = new BorderPane(); 
    SwingNode node = new SwingNode(); 
    root.setCenter(node); 
    node.setContent(createIntermediateSwingLayer()); 
    return new Scene(root); 
  } 
   
  private static JPanel createIntermediateSwingLayer() 
  { 
    JPanel jpanel = new JPanel(); 
    jpanel.setLayout(new BorderLayout()); 
    jpanel.add(createJFXPanel(), BorderLayout.CENTER); 
    return jpanel; 
  } 
   
  private static JFXPanel createJFXPanel() 
  { 
    JFXPanel jfxPanel = new JFXPanel(); 
    Scene jfxPanelScene = new Scene(createInnerJavaFxScene()); 
    jfxPanel.setScene(jfxPanelScene); 
    return jfxPanel; 
  } 
   
  private static BorderPane createInnerJavaFxScene() 
  { 
    BorderPane jfxPanelBorderPane = new BorderPane(); 
    DatePicker datePicker = new DatePicker(); 
    jfxPanelBorderPane.setCenter(datePicker); 
    return jfxPanelBorderPane; 
  } 

  public static void main(String[] args) 
  { 
    launch(args); 
  } 
   
} 