123ArticleOnline Logo
Welcome to 123ArticleOnline.com!
ALL >> Computer-Programming >> View Article

Integration Of Swing And Swt With Javafx 2.0

Profile Picture
By Author: mayur aegis
Total Articles: 64
Comment this article
Facebook ShareTwitter ShareGoogle+ ShareTwitter Share

This article contains some observations, thoughts related to Java Development. Based on the observation some tips and tricks would help to get solutions for problems that are often faced during Java application development. While there are also some interesting and useful concepts focused here that will help Java developers to easily face issues and provide their clients with better Java solutions. Clients can choose to outsource Java development services and get it handled right from scratch to the complete process of superior quality of technical solution creation. Outsource Java development includes everything from specification writing, planning, QA, deployment and much more.
Best possible improvement that should be implemented while Java development is to integrate JavaFX 2.0 with Swing and SWT which results into better interoperability. This could be done with some useful tips available online and includes information regarding integration of JavaFX into Swing Applications and SWT Interop. An example of effective class-level Javadoc documentation, the respective JavaFX classes javafx.embed.swing.JFXPanel and javafx.embed.swt.FXCanvasprovides ...
... a simple code sample that helps in using the class for embedding JavaFX into swing or SWT code.
JavaFX Scene is allowed to be set on their instance by both JFXPanel and FXCanvas. The instance of Scene is used in examples in this post are provided by the method shown in the next JavaFX-specific code example.
Method that provides a JavaFX Scene for Integration:
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

/**
* Simple class demonstrating interoperability between Swing and JavaFX. This
* class is adapted from the example provided in the Javadoc documentation for
* {@code javafx.embed.swing.JFXPanel}.
*/
public class SwingJavaFxInteroperabilityDemo
{
private static void initAndShowGUI()
{
// This method is invoked on Swing thread
final JFrame frame = new JFrame("JavaFX / Swing Integrated");
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
final Scene scene = TextIntegrationSceneCreator.createTextScene();
fxPanel.setScene(scene);
}

public static void main(String[] arguments)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
initAndShowGUI();
}
});
}
}
Now for integrating JavaFX Scene into Swing code via the JavaFX class JFXPanel and its setScene method is used. Please see its demonstration in the next example below which will help particular Scene instance from the method in previous code listing.
JavaFX/Swing Integration with JFXPanel
viewplainprint?
package dustin.examples;

import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

/**
* Simple class demonstrating interoperability between Swing and JavaFX. This
* class is adapted from the example provided in the Javadoc documentation for
* {@code javafx.embed.swing.JFXPanel}.
*/
public class SwingJavaFxInteroperabilityDemo
{
private static void initAndShowGUI()
{
// This method is invoked on Swing thread
final JFrame frame = new JFrame("JavaFX / Swing Integrated");
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
final Scene scene = TextIntegrationSceneCreator.createTextScene();
fxPanel.setScene(scene);
}

public static void main(String[] arguments)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
initAndShowGUI();
}
});
}
}
Now we will see next is the output of running this simple Java Swing application with embedded JavaFX Scene while creating acceptable and successful Java solutions. Integration of SWT with JavaFX is arguably easier as seen below. The main aim is to call FXCanvas's setScene(Scene) method.
JavaFX/SWT Integration with FXCanvas
package dustin.examples;

import javafx.embed.swt.FXCanvas;
import javafx.scene.Scene;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

/**
* Simple class demonstrating interoperability between SWT and JavaFX. This
* class is based on the example provided in the Javadoc documentation for
* {@code javafx.embed.swt.FXCanvas}.
*
* @author Dustin
*/
public class SwtJavaFxInteroperabilityDemo
{
public static void main(String[] arguments)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("JavaFX / SWT Integration");
shell.setLayout(new FillLayout());
final FXCanvas canvas = new FXCanvas(shell, SWT.NONE);
final Scene scene = TextIntegrationSceneCreator.createTextScene();
canvas.setScene(scene);
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
}
These code listings shown above are only little adapted from the Javadoc documentation for the JavaFX classes JFXPanel (Swing) and FXCanvas (SWT).

For More Information:- Java Development | Java Application Development

Total Views: 274Word Count: 572See All articles From Author

Add Comment

Computer Programming Articles

1. Best Data Science Training In Bhopal To Kickstart Your Data Career In 2025
Author: Rohan Rajput

2. Blue Wizard Liquid Drops 30 Ml 2 Bottles Price In Rawalpindi
Author: bluewizard.pk

3. Blue Wizard Liquid Drops 30 Ml 2 Bottles Price In Faisalabad
Author: bluewizard.pk

4. Blue Wizard Liquid Drops 30 Ml 2 Bottles Price In Karachi
Author: bluewizard.pk

5. The Ultimate Guide To Launching A Successful Online Store
Author: Rudram Technology Solutions LLP

6. Best Data Science Institute In Bhopal Offering Practical Training & Placements
Author: Rohan Rajput

7. Why Cfos Are Switching To Automated Depreciation Software?
Author: Maco Infotech

8. Agentic Ai Development Services: Unlocking The Future Of Smarter Automation
Author: Albert

9. Why The Best Data Science Institute In Bhopal Is The Gateway To Top It Jobs
Author: Rohan Rajput

10. Complete Php Tutorial: Master Core Php Concepts With Examples
Author: Tech Point

11. Framework7 Tutorial For Beginners – Create Powerful Hybrid Apps
Author: Tech Point

12. Why Spadegaming Is Dominating The Asian Igaming Market
Author: Alex

13. Why Express.js And Mongodb Are A Dynamic Duo For Node.js Development
Author: Andy

14. Discover The Best Data Science Institute In Bhopal For A Future-ready Career
Author: Rohan Rajput

15. Best Data Science Institute In Bhopal: Learn Ai, Ml & Analytics With Experts
Author: Rohan Rajput

Login To Account
Login Email:
Password:
Forgot Password?
New User?
Sign Up Newsletter
Email Address: