FX Experience Has Gone Read-Only
I've been maintaining FX Experience for a really long time now, and I love hearing from people who enjoy my weekly links roundup. One thing I've noticed recently is that maintaining two sites (FX Experience and JonathanGiles.net) takes more time than ideal, and splits the audience up. Therefore, FX Experience will become read-only for new blog posts, but weekly posts will continue to be published on JonathanGiles.net. If you follow @FXExperience on Twitter, I suggest you also follow @JonathanGiles. This is not the end - just a consolidation of my online presence to make my life a little easier!
tl;dr: Follow me on Twitter and check for the latest news on JonathanGiles.net.
by Jonathan Giles | May 5, 2013 | Links
Hi all. Welcome to another weeks worth of links. There is, as is becoming all too frequent, a great number of links this week, spanning new downloads, 3D investigations, embedded discussions and interesting new tools and libraries being developed by people in the community. Keep up the great work! 🙂
- JavaFX 8.0 b88 is available for download, which includes the normal bug fixes, etc, but also JavaFX 3D support on Mac and Linux (it actually appeared in b87, I just forgot to mention it).
- Also newly released this week in Scene Builder 1.1 b25.
- Danno Ferrin has blogged about his touch / gesture test application Touchy FXy. As he says in the post, “One of the main reasons I wrote this is to get a feel for some of the quirks on the various platforms that JavaFX runs on. Already I have some issues in mind, but I want to get a good survey of the problem space before I propose anything.”
- Philipp Dörfler has a guest post over at guigarage about his sbt-fxml project. sbt-fxml is, as Philipp puts it, a tool that “scans for FXML files – either hand written or created by Scene Builder – parses them and creates controller classes with a proper name, package structure, imports, declarations and types. That’s right: types! So now your FXML files suddenly type check thus allowing you to find mistakes almost instantly. And because of SBT, you don’t even have to manually start the build for it. It happens as soon as you save your files.”
- Jasper Potts has posted a video and some code demonstrating how he hacked together support for the 3D SpaceNavigator input device.
- Speaking of Jasper and 3D, he has made available the code to render 3D models from various apps. You can get it by cloning the openjfx mercurial repo and browsing into rt/apps/experiments/3DViewer. He tweeted a screenshot of the application.
- Angela Caicedo has a long and detailed post called “Beyond Beauty: JavaFX, I2C, Parallax, Touch, Raspberry Pi, Gyroscopes and Much More.”
- mihosoft has published part two of the series of posts on workflow visualization with VWorkflows & JavaFX.
- Sean Phillips has posted part two of how to integrate JavaFX into the NetBeans platform wizard.
- Jason Lee has started to develop an AsciiDoc editor in JavaFX. You can check out the project over at bitbucket.
- Andy Moncsek has a post about using JacpFX clients with JSR 356 WebSockets.
- Jim Weaver and Thierry Wasylczenko were interviewed at Devoxx France, and the video is now available online for you to view.
- Robert Ladstätter has two posts this week. Firstly, he has posted part three on how to “use your webcam with JavaFX and OpenCV“. Secondly, he has a post on “using Scala Futures and OpenCV together with JavaFX“.
- Froglogic Squish (a commercial tool for UI test automation) has received an update that now adds support for JavaFX UI testing. I should note I’ve not used or even had access to this tool, but I am pleased that UI test automation is being worked on for JavaFX, hence the mention.
See – I told you it was a great list of links! 🙂 Catch you all next week, and keep up the great work.
Andy Moncsek
by Jasper Potts | May 1, 2013 | 3D
I just got a 3D Connexion SpaceNavigator which is a kind of 3D input device(mouse/stick). It is cool to use when 3D modeling content for JavaFX but I thought it would be even better if I could navigate my JavaFX 3D scenes using it. I managed to hack some quick code to get it working in JavaFX. Many thanks to the JInput project, they made it super easy. Its super fun so I recoded a little video to share with you.
SpaceNavigator with JavaFX from Jasper Potts on Vimeo.
The code really is very simple, I just have a AnimationTimer that every frame checks to get the current inputs from device and applies them to the camera transforms. The device via jinput provides 6 floats for each axis and 2 booleans for the buttons, so could not be easier to connect to your app. Below is complete 3D app with a simple cube. I will be working on getting the object importers out in open source for you to use very soon 🙂
public class InputTestBlog extends Application {
private ControllerEnvironment controllerEnvironment;
private Controller spaceNavigator;
private Component[] components;
private Translate translate;
private Rotate rotateX,rotateY,rotateZ;
@Override public void start(Stage stage) throws Exception {
controllerEnvironment = ControllerEnvironment.getDefaultEnvironment();
Controller[] controllers = controllerEnvironment.getControllers();
for(Controller controller: controllers){
if ("SpaceNavigator".equalsIgnoreCase(controller.getName())){
spaceNavigator = controller;
System.out.println("USING Device ["+controller.getName()+"] of type ["+controller.getType().toString()+"]");
components = spaceNavigator.getComponents();
}
}
Group root = new Group();
Scene scene = new Scene(root, 1024, 768, true);
stage.setScene(scene);
scene.setFill(Color.GRAY);
// CAMERA
final PerspectiveCamera camera = new PerspectiveCamera(true);
scene.setCamera(camera);
root.getChildren().add(camera);
// BOX
Box testBox = new Box(5,5,5);
testBox.setMaterial(new PhongMaterial(Color.RED));
testBox.setDrawMode(DrawMode.LINE);
root.getChildren().add(testBox);
// MOVE CAMERA
camera.getTransforms().addAll(
rotateY = new Rotate(-20, Rotate.Y_AXIS),
rotateX = new Rotate(-20, Rotate.X_AXIS),
rotateZ = new Rotate(0, Rotate.Z_AXIS),
translate = new Translate(5, -5, -15)
);
// SHOW STAGE
stage.show();
// CHECK FOR INPUT
if (spaceNavigator != null) {
new AnimationTimer() {
@Override public void handle(long l) {
if (spaceNavigator.poll()) {
for(Component component: components) {
switch(component.getName()) {
case "x":
translate.setX(translate.getX() + component.getPollData());
break;
case "y":
translate.setY(translate.getY()+component.getPollData());
break;
case "z":
translate.setZ(translate.getZ()+component.getPollData());
break;
case "rx":
rotateX.setAngle(rotateX.getAngle()+component.getPollData());
break;
case "ry":
rotateY.setAngle(rotateY.getAngle()+component.getPollData());
break;
case "rz":
rotateZ.setAngle(rotateZ.getAngle()+component.getPollData());
break;
}
}
}
}
}.start();
}
}
public static void main(String[] args) {
System.setProperty("net.java.games.input.librarypath", new File("lib").getAbsolutePath());
launch(args);
}
}
by Jonathan Giles | Apr 28, 2013 | Links
Hi all, a bunch of good links this week! The community really are putting a lot of effort into blogging about their JavaFX projects, which is great. Keep up the good work! 🙂
- Coming up this week is a presentation by Richard Bair at the Silicon Valley JavaFX Users Group on the topic of OpenJFX. The talk is on Wednesday, 1st May, starting at 6:15pm (PDT). As per usual, it will also be broadcast live over the internet for those of you not in the Bay Area (such as myself). The streaming starts at 7:00pm, and I recommend you sign up for a ustream account so that you may join the discussion. The stream is at the usual place.
- Canoo have two recent blog posts that may be of interest to you. Firstly, they have posted on using Dolphin to display a train station schedule. In a second post, they cover their CanooNow project, which is an embedded room allocation dashboard with JavaFx and OpenDolphin, running on a Raspberry Pi.
- Claudine Zillmann continues making excellent progress on developing a Mac OS X aqua theme for JavaFX. She has just posted another blog post which shows a JavaFX application side-by-side with a native Mac OS X dialog, and the differences are negligible.
- There appears to be a battle being waged between Sean Phillips and Geertjan Wielenga over JavaFX integration into the NetBeans platform. There are now five such articles that I’m aware of, all titled along the lines of “How to Integrate JavaFX into the NetBeans Platform X”, where X has so far included Visual Library Scene, MenuBar, ToolBar, Wizard, and Explorer View. Keep up the great work guys – lets see how far you can push NetBeans 🙂
- The Helsinki Scala Club recently had a presentation on ScalaFX, which is now posted online (in PDF form).
- Mirko Sertic has created a desktop search engine with a JavaFX frontend. Very nice stuff! 🙂
- August Lammersdorf has updated his JavaFX 3D model importers to take advantage of the new JavaFX 3D APIs that appeared in JavaFX 8.0 b87.
- William Antonio has posted a blog detailing the Afterburner.fx library developed by Adam Bien. Afterburner.fx is a “minimalistic (2 classes) JavaFX MVP framework based on Convention over Configuration.”
- Jörn Hameister has blogged about how to use and extend the JFXtras library.
- Robin Leo Söderström has a post about creating a Windows 7 screen saver using JavaFX.
- Anton Epple has a short post on how to dynamically populate a JavaFX tooltip just prior to displaying it on screen.
That’s all for this week, and again, keep up the great work folks! 🙂
by Jonathan Giles | Apr 21, 2013 | Links
A good selection of links this week. Enjoy 🙂
Catch you all next week. In the mean time, keep up the great work folks! 🙂
by Jonathan Giles | Apr 14, 2013 | Links
Hi all, here’s your links for another week. Enjoy! 🙂
Catch you all in a weeks time! 🙂
by Jonathan Giles | Apr 7, 2013 | Links
Hi all. Because of the technical issues we had last week, this post includes the links for the week prior as well. Enjoy!
April 1 – April 8:
- JDK 8 Early Access Developer Preview b84 has been released, which of course includes the latest JavaFX 8.0 developer preview build.
- JetBrains have announced that IntelliJ IDEA 12.1 is now available, and it comes with great JavaFX 2.x support, including “complete support for FXML markup, custom CSS, code completion, navigation and search, refactorings, packaging tools, and integration with SceneBuilder.” This means that the three main Java IDEs (IntelliJ, Eclipse and NetBeans) all have great support for JavaFX. Personally I’ve moved back to using Eclipse (which I used for many years), and it is a joy to return to my ‘home’ IDE.
- Philipp Dörfler has been working on a project he calls sbt-fxml, which generates Scala-based controller classes for a given FXML file. I’m not a huge user of FXML, but I wonder if similar tooling could be developed for Java and other language controllers?
- Jim Laskey has a blog post exploring how to use Java FX from Nashorn (the Java-based JavaScript engine coming up in Java 8).
- Sébastien Bordes has announced the release of JRebirth 0.7.3. From the JRebirth website: “JRebirth JavaFX 2 Application Framework provides a really simple way to write sophisticated and powerful RIA’s applications. By leveraging the best of previous RIA framework, we can deliver the ultimate one to work cleanly and efficiently with this awesome API”.
- Speaking of JavaFX application frameworks, Adam Bien has been working on Afterburner.fx, a “minimalistic (2 classes) JavaFX MVP framework based on Convention over Configuration.”
- Jens Deters has updated his SelectableTitledPane blog post I linked to last week.
- Jens Deters has updated his earlier JavaFX on Raspberry Pi script to be even better.
- Jorn Hameister has posted another JavaFX fractal application, this time the Mandelbrot and Julia fractals.
- Paul Leahy has posted a few articles over on about.com about JavaFX UI controls, covering Label, Button, TextField and ChoiceBox.
March 25 – April 1:
- Richard Bair has been working like a mad man improving the build infrastructure of OpenJFX by using gradle. As his work proceeds he has been writing considerable documentation for those interested.
- Much discussion took place this week on Twitter due to the introduction of the SwingNode code into the OpenJFX repo. The SwingNode allows for Swing to be embedded within a JavaFX scenegraph (so in JavaFX 8.0 it is possible to embed JavaFX inside Swing and SWT, and Swing can be embedded inside JavaFX).
- JetBrains have posted part three of their series on IntelliJ support for JavaFX 2, this time blogging about packaging JavaFX 2 applications in IntelliJ IDEA 12.1.
- Johan Vos has an article up on jaxenter about ‘getting real world data into JavaFX UI controls with DataFX‘. More information about DataFX can be found over at the DataFX website.
- Sven Reimers has begun a series of posts on his eFX application framework for JavaFX.
- Dierk Koenig has posted a video showing a Swing to JavaFX migration using the OpenDolphin framework.
- mihosoft have posted about how JavaFX 8.0 has seen large performance gains over JavaFX 2.x (which is something we’ve been working hard on in the 8.x development cycle).
- Sven Efftinge has put up a readme detailing the functionality offered by the xtendfx library. As he puts it, “XtendFX is a little library making JavaFX programming in Java and Xtend a joy.” It certainly does look very nice.
- Robert Ladstätter continues to work on JavaFX graphics, this time he has a video where he draws a 3D tree (yes, literally a tree)
- Jens Deters has blogged about a custom JavaFX component he has developed: a SelectablePane (essentially a TitledPane with some modifications to control its expanded state).
Catch you all next week! 🙂
by Jonathan Giles | Mar 24, 2013 | Links
Hi all – here’s this weeks links – enjoy! 🙂
- JavaFX Scene Builder b22 is available for Linux. Download it (along with versions for Mac and Windows) from the usual place.
- Hendrik Ebbers has two posts this week. Firstly a blog post about how to use native Aqua icons in JavaFX (when running on Mac OS X). Secondly Hendrik has blogged about assertions and rules in MarvinFX. MarvinFX is a testing framework for JavaFX is that Hendrik is currently developing.
- InteractiveMesh.org have released a 3D model importer for JavaFX 8.0 (using the new 3D capabilities that are included in JavaFX 8.0). At present it appears that source code is not available, but it would be great to see it.
- Speaking of 3D, as I mentioned last week, John Yoon from the JavaFX team at Oracle will be presenting at the Silicon Valley JavaFX Users Group on March 27. As per usual you can attend in person or virtually. What’s cool is that John studied animation at the UCLA Film School, where he received his Master of Fine Arts in Animation/Film. Prior to working at Oracle, John worked in the animation industry as a Character Technical Director at Disney Animation and DreamWorks Animation on such films as “Chicken Little”, “Meet the Robinsons”, “Shrek Forever After”, and “How to Train Your Dragon”.
- ScalaFX 1.0.0 M2 was released recently. If you’re interested in building JavaFX-based user interfaces in Scala, then you should definitely check out this library.
- Yennick Trevels has two posts this week as he continues his ‘JavaFX: Structuring your application’ series. Firstly, he posts about the application logic layer, and secondly about the service and application state layer.
- Russel Winder has put up a slide deck for his talk on ‘GroovyFX: or how to program JavaFX easily‘.
- Jorn Hameister has posted code that generates the Mandelbrot fractal using JavaFX Canvas.
- mihosoft have announced that they have ported the JFXtras Window Control (VFXWindows) to JavaFX 8.0. They say the main motivation was to gain retina support, but note that performance is also significantly improved in JavaFX 8.0.
- tomo taka has blogged about creating a file system browser in JavaFX using the TreeView control.
- Pierre Jansen has released an app he calls ZebraBlender. As he puts it, it is designed to “assist in the creation of more accurate Geo & SpectroBlend waves for Zebra2 & Zebralette.” He goes on to say “Besides allowing you to precisely specify the value of each point in the wave, it also includes a Javascript interpreter which allows you to programatically specify the wave shape and/or wave set.” In short, it uses charts, embedded JavaScript and the new graphics APIs in an interesting way.
That’s all folks. Catch you all next week.
by Jonathan Giles | Mar 17, 2013 | Links
A heap of links this week, and I’ve already spent long enough writing the links out below, so let’s just get straight into it! 🙂
- JDK 8 b81 is out now for download, and as always contains the latest JavaFX 8.0 bits for you to test out.
- JavaFX Scene Builder 1.1 Developer Preview b22 is now available for download.
- Jasper Potts posted an updated blog post about the new Modena theme that is coming to JavaFX 8.0. It has come a long way since the first post on Modena six weeks ago, and much of the community advice has been listened to to refine the Modena look. Personally I think it is miles ahead of what we shipped in JavaFX 1.x and 2.x (which is known as Caspian).
- Tom Schindl continues to write a number of interesting blog posts detailing his current projects. This week he has three posts. Firstly, he talks about building an intelligent code editor with JavaFX and JDT. Secondly he has announced the release of e(fx)clipse 0.8.1 which includes a number of new features. Finally, he has details of his upcoming talks about e(fx)clipse and JavaFX at EclipseCon next week.
- Speaking of Eclipse, Kai Tödter has blogged about his experiments with GEF4 graphics being rendered using JavaFX Canvas.
- Hendrik Ebbers has started work on a testing framework for JavaFX that he is calling MarvinFX. I hope that this project gains a lot of traction with the community and can grow to encompass fixtures for all UI controls to make testing quicker and easier.
- It’s not for another week yet (so I’ll remind you again in a weeks time), but John Yoon from the JavaFX team at Oracle will be presenting at the Silicon Valley JavaFX Users Group on March 27. As per usual you can attend in person or virtually. What’s cool is that John studied animation at the UCLA Film School, where he received his Master of Fine Arts in Animation/Film. Prior to working at Oracle, John worked in the animation industry as a Character Technical Director at Disney Animation and DreamWorks Animation on such films as “Chicken Little”, “Meet the Robinsons”, “Shrek Forever After”, and “How to Train Your Dragon”.
- It is great to see the JetBrains folks starting to get right behind JavaFX. This week they have posted about their improved support for JavaFX 2 CSS in IntelliJ IDEA 12.1.
- A whitepaper was published over at the Oracle Technical Network about how Integra CCS uses JavaFX to power contact centers around the world.
- Björn Müller has published an article titled Why, Where, and How JavaFX Makes Sense.
- Farrukh Obaid has published another JavaFX skin, this time it emulates the look of the Office Silver look.
- Jens Deters has a post about custom components, where is explores hover effects.
- Jorn Hameister has blogged about how to create a JavaFX dartboard with Shapes (Path, Arc, ArcTo, Circle) and Text.
Keep up all the hard work folks – you’re doing such a great job and it is a pleasure reading what you’re all up to! 🙂
by Jasper Potts | Mar 13, 2013 | Controls, CSS
We have been working really hard on the new Modena theme for JavaFX 8. I think we are finally really close so I wanted to share with you where we got to. I really hope you like the progress and direction. We took a lot of the feedback from the last blog into consideration. Overall though I am really happy and feel that this is going to do as much as we can to make JavaFX applications look great out of the box.
Retina Mac
For those lucky enough to be running on Retina Mac then we also have support for Retina now in JavaFX 8 and with Modena so enjoy.
Trying for your self
The almost final version of Modena will be available this week in Java 8 Early Access build 81. For instructions for enabling Modena and running the test application see the first Modena blog post.
(more…)
by Jonathan Giles | Mar 10, 2013 | Links
Hi all – welcome to yet more JavaFX links! Hopefully there is something for all of you to learn from and enjoy. Have a great week and I’ll catch you again in a weeks time with yet more of your links! 🙂