Science, Tech, Math › Computer Science How to Build a Simple GUI Application (With Example JavaFX Code) Share Flipboard Email Print Computer Science Java Programming PHP Programming Perl Python Javascript Programming Delphi Programming C & C++ Programming Ruby Programming Visual Basic View More By Paul Leahy Paul Leahy Computer Science Expert M.A., Advanced Information Systems, University of Glasgow Paul Leahy is a computer programmer with over a decade of experience working in the IT industry, as both an in-house and vendor-based developer. Learn about our Editorial Process Updated on January 13, 2020 Background This code uses a BorderPane as a container for two FlowPanes and a Button. The first FlowPane contains a Label and ChoiceBox, the second FlowPane a Label and a ListView. The Button switches the visibility of each FlowPane. JavaFX Code © Stepan Popov / E+ / Getty Images //Imports are listed in full to show what's being used //could just import javafx.* import javafx.application.Application; import javafx.collections.FXCollections; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ChoiceBox; import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.layout.BorderPane; import javafx.scene.layout.FlowPane; import javafx.stage.Stage; public class ApplicationWindow extends Application { //JavaFX applicatoin still use the main method. //It should only ever contain the call to the launch method public static void main(String[] args) { launch(args); } //starting point for the application //this is where we put the code for the user interface @Override public void start(Stage primaryStage) { //The primaryStage is the top-level container primaryStage.setTitle("example Gui"); //The BorderPane has the same areas laid out as the //BorderLayout layout manager BorderPane componentLayout = new BorderPane(); componentLayout.setPadding(new Insets(20,0,20,20)); //The FlowPane is a conatiner that uses a flow layout final FlowPane choicePane = new FlowPane(); choicePane.setHgap(100); Label choiceLbl = new Label("Fruits"); //The choicebox is populated from an observableArrayList ChoiceBox fruits = new ChoiceBox(FXCollections.observableArrayList("Asparagus", "Beans", "Broccoli", "Cabbage" , "Carrot", "Celery", "Cucumber", "Leek", "Mushroom" , "Pepper", "Radish", "Shallot", "Spinach", "Swede" , "Turnip")); //Add the label and choicebox to the flowpane choicePane.getChildren().add(choiceLbl); choicePane.getChildren().add(fruits); //put the flowpane in the top area of the BorderPane componentLayout.setTop(choicePane); final FlowPane listPane = new FlowPane(); listPane.setHgap(100); Label listLbl = new Label("Vegetables"); ListView vegetables = new ListView(FXCollections.observableArrayList("Apple", "Apricot", "Banana" ,"Cherry", "Date", "Kiwi", "Orange", "Pear", "Strawberry")); listPane.getChildren().add(listLbl); listPane.getChildren().add(vegetables); listPane.setVisible(false); componentLayout.setCenter(listPane); //The button uses an inner class to handle the button click event Button vegFruitBut = new Button("Fruit or Veg"); vegFruitBut.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { //switch the visibility for each FlowPane choicePane.setVisible(!choicePane.isVisible()); listPane.setVisible(!listPane.isVisible()); } }); componentLayout.setBottom(vegFruitBut); //Add the BorderPane to the Scene Scene appScene = new Scene(componentLayout,500,500); //Add the Scene to the Stage primaryStage.setScene(appScene); primaryStage.show(); } } Cite this Article Format mla apa chicago Your Citation Leahy, Paul. "How to Build a Simple GUI Application (With Example JavaFX Code)." ThoughtCo, Aug. 26, 2020, thoughtco.com/how-to-build-a-simple-gui-application-javafx-code-2034067. Leahy, Paul. (2020, August 26). How to Build a Simple GUI Application (With Example JavaFX Code). Retrieved from https://www.thoughtco.com/how-to-build-a-simple-gui-application-javafx-code-2034067 Leahy, Paul. "How to Build a Simple GUI Application (With Example JavaFX Code)." ThoughtCo. https://www.thoughtco.com/how-to-build-a-simple-gui-application-javafx-code-2034067 (accessed March 21, 2023). copy citation Featured Video