JavaFX Image Converter

Sometimes it is easier to grasp the concepts of a language or library such as JavaFX by seeing it in action. I’ve put together a JavaFX image converter application. This JavaFX app allows you to drag GIF’s, JPEG’s, BMP’s, or PNG’s onto the ImageView and then convert them and save them quickly as any of the other formats mentioned above.

JavaFX Image Converter
This JavaFX app allows quick conversion of BMP, GIF, JPG, and PNG files to any of the other formats and saving to your computer.

This JavaFX app is a double-clickable JAR file. That means that if you want to run it from the JAR file, just make sure you have Java installed and double-click the JavaFX JAR named image-converter.jar.

Continue reading “JavaFX Image Converter”

JavaFX Fahrenheit to Celsius Converter in FXML

JavaFX Fahrenheit to Celsius Example
JavaFX Fahrenheit to Celsius example using FXML to layout the Scene on the Stage.

JavaFX is easy once you get the hang of it, but for new programmers that requires plenty of examples. More experienced programmers will find one or two examples are enough to master most of JavaFX, so a lot of web sites only put one or two examples up—enough for experienced programmers, but not nearly enough for newer programmers.

In this post, I present the classic temperature converter example modified to use JavaFX. This example uses basic MVC/MVP design. If you want to see this same JavaFX tutorial written in pure Java, look for my other tutorial on this site. It will be the one mentioning pure Java instead of FXML.

Continue reading “JavaFX Fahrenheit to Celsius Converter in FXML”

Recognizing Dragged File Types in JavaFX

Dragging files onto nodes in JavaFX is fairly easy. The main trick is making sure you are only accepting the correct file types. There are several approaches to determining file type on the fly, or on the drag over, in our case. However, I recommend just going with the simplest approach.

While you are dealing with the drag over event, get the Dragboard from the event. Then grab the List<File> from the JavaFX DragBoard. At that point it is simple to get the first file’s Path, convert it to a String, and check that it ends with an acceptable file extension.

No. Really. It’s simple.

Here’s the code for checking for a *.txt file being dragged on to a TextArea that is watching drag over events.

@FXML
void textDragOver(DragEvent event) {
  Dragboard board = event.getDragboard();
  if (board.hasFiles()) {

    List<File> phil = board.getFiles();
    String path = phil
        .get(0)
        .toPath()
        .toString();

    if (path.endsWith(".txt")) {
      event
      .acceptTransferModes(
          TransferMode.ANY);
    }        
  }
}

 

Continue reading “Recognizing Dragged File Types in JavaFX”