import javafx.application.Platform; 
import javafx.embed.swing.JFXPanel; 
import javafx.event.EventHandler; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.layout.StackPane; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class JFXPanelTest { 

    public static void main(String[] args) { 
        javax.swing.SwingUtilities.invokeLater(new Runnable() { 
            public void run() { 
                createAndShowGUI(); 
            } 
        }); 
    } 

static void createAndShowGUI() { 
        JFrame frame = new JFrame("JFXPanel Test"); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(300, 300); 

JPanel jPanel = new JPanel(); 
frame.getContentPane().add(jPanel); 
jPanel.add(new TestPanel("panel 1", "red")); 
jPanel.add(new TestPanel("panel 2", "green")); 

        frame.setVisible(true); 
    } 


static class TestPanel extends JFXPanel { 
TestPanel(String name, String colour) { 
Platform.runLater(new Runnable() { 
@Override 
public void run() { 
StackPane root = new StackPane(); 
root.setStyle("-fx-background-color: " + colour); 
root.getChildren().add(new Label(name)); 
Scene scene = new Scene(root); 
setScene(scene); 

root.addEventHandler(javafx.scene.input.MouseEvent.MOUSE_PRESSED, 
new MousePressedEventHandler()); 
} 
}); 
} 
} 

static class MousePressedEventHandler 
implements EventHandler<javafx.scene.input.MouseEvent> { 
public void handle(javafx.scene.input.MouseEvent e) { 
System.out.println("e.getClickCount() = " + e.getClickCount()); 
e.consume(); 
} 
} 
} 