import javafx.application.Application; import javafx.embed.swing.SwingNode; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.SwingUtilities; public class SwingFxTest extends Application { @Override public void start(Stage stage) { final SwingNode swingNode = new SwingNode(); createSwingContent(swingNode); StackPane pane = new StackPane(); pane.getChildren().add(swingNode); stage.setTitle("JavaFX Sample App"); stage.setScene(new Scene(pane, 800, 600)); stage.show(); } private void createSwingContent(final SwingNode swingNode) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JButton button = new JButton("Click Here!"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Button Clicked!!!"); } }); swingNode.setContent(button); } }); } public static void main(String[] args) { Application.launch(SwingFxTest.class, args); } }