Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

JavaFx my display doesn't show the flower i added from the Add Flower menu //driver.java import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern;

JavaFx my display doesn't show the flower i added from the Add Flower menu

//driver.java

import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern;

import javafx.application.Application; import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; import javafx.scene.control.MenuItem; import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import javafx.scene.control.Toggle; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; import javafx.scene.text.Text;

public class Driver extends Application { private MenuItem addPlant; private MenuItem displayPlant; private MenuItem exitMenu; private BorderPane pane; private BorderPane addPane; private BorderPane displayPane; //private Text msg; private Button save; private List plantPack = new ArrayList<>();

@Override public void start(Stage primaryStage) { EventHandler action = changeTabPlacement(); VBox menuBox = new VBox(); pane = new BorderPane(); MenuBar menuBar = new MenuBar(); Menu startMenu = new Menu("Start"); addPlant = new MenuItem("Add Plant"); addPlant.setOnAction(action); displayPlant = new MenuItem("Display Plant"); displayPlant.setOnAction(action); exitMenu = new MenuItem("Exit"); exitMenu.setOnAction(action); startMenu.getItems().addAll(addPlant, displayPlant, exitMenu); menuBar.getMenus().addAll(startMenu); //pane.setTop(menuBar); Scene scene = new Scene(pane, 500, 500); menuBox.getChildren().add(menuBar); pane.setTop(menuBox); primaryStage.setTitle("FlowerPack Interface"); primaryStage.setScene(scene); primaryStage.show(); } private EventHandler changeTabPlacement() { return new EventHandler() { public void handle(ActionEvent event) { MenuItem mItem = (MenuItem) event.getSource(); if(mItem == addPlant) { //msg.setText("Please choose plant type"); addPlant(); } else if(mItem == displayPlant) { displayPlant(); } } }; } private void addPlant() { addPane = new BorderPane(); addPane.setPrefSize(450, 450); RadioButton rbFlower = new RadioButton("Flower"); RadioButton rbFungus = new RadioButton("Fungus"); RadioButton rbWeed = new RadioButton("Weed"); RadioButton rbHerb = new RadioButton("Herb"); ToggleGroup rbGroup = new ToggleGroup(); rbFlower.setToggleGroup(rbGroup); rbFungus.setToggleGroup(rbGroup); rbWeed.setToggleGroup(rbGroup); rbHerb.setToggleGroup(rbGroup); rbFlower.setOnAction(action -> { if (rbFlower.isSelected()) { addFlower(save); } }); HBox plantBox = new HBox(rbFlower, rbFungus, rbWeed, rbHerb); plantBox.setAlignment(Pos.TOP_CENTER); plantBox.setSpacing(10); pane.setCenter(addPane); addPane.setTop(plantBox); } private void addFlower(Button save) { Text msg1 = new Text("Flower Saved!"); TextField tfFlowerID = new TextField(); TextField tfFlowerName = new TextField(); TextField tfFlowerColor = new TextField(); TextField tfFlowerSmell = new TextField(); CheckBox cbFlowerThorns = new CheckBox(); save = new Button("Save Flower"); save.setAlignment(Pos.CENTER); addPane.setBottom(save); GridPane gridPane = new GridPane(); gridPane.setAlignment(Pos.CENTER); gridPane.setHgap(5); gridPane.setVgap(5); gridPane.add(new Label("Flower ID:"), 0, 0); gridPane.add(tfFlowerID, 1, 0); gridPane.add(new Label("Flower Name:"), 0, 1); gridPane.add(tfFlowerName, 1, 1); gridPane.add(new Label("Flower Color:"), 0, 2); gridPane.add(tfFlowerColor, 1, 2); gridPane.add(new Label("Flower Smell:"), 0, 3); gridPane.add(tfFlowerSmell, 1, 3); gridPane.add(new Label("Flower Thorn? (Check if YES)"), 0, 4); gridPane.add(cbFlowerThorns, 1, 4); //gridPane.add(new Label("Check if Yes"), 2, 4); addPane.setCenter(gridPane); save.setOnAction(new EventHandler() { @Override public void handle(ActionEvent e) { String flowerID = tfFlowerID.getText(); String flowerName = tfFlowerName.getText(); String flowerColor = tfFlowerColor.getText(); String flowerSmell = tfFlowerSmell.getText(); Plant plant = new Flower(); plant.setID(flowerID); plant.setName(flowerName); plant.setColor(flowerColor); ((Flower)plant).setSmell(flowerSmell); plantPack.add(plant); msg1.setText("Flower Added!"); } }); } private void displayPlant() { displayPane = new BorderPane(); displayPane.setPrefSize(450, 450); ListView lv = new ListView<> (FXCollections.observableArrayList(plantPack)); lv.setPrefSize(400, 400); StringBuilder text = new StringBuilder(); for(Plant plant : plantPack) { if(plant instanceof Flower) { text.append(" Flower: "); } text.append(plant); } //return; pane.setCenter(displayPane); } public static void main(String[] args) { Application.launch(args); } }

//flower.java

public class Flower extends Plant {

private String Smell; private String Thorns;

public String getSmell() { return Smell; } public void setSmell(String Smell) { this.Smell = Smell; } public String getThorns() { return Thorns; } public void setThorns(String Thorns) { this.Thorns = Thorns; } public void Name() { super.getName(); } public void ID() { super.getID(); } public void Color() { super.getColor(); } public String toString() { return super.toString() + " Smell: " + Smell + " withThorns: " + Thorns; } }

//plant.java

public class Plant { private String Name; private String ID; private String Color;

public String getName() { return Name; } public void setName(String Name) { this.Name = Name; } public String getID() { return ID; } public void setID(String ID) { this.ID = ID; } public String getColor() { return Color; } public void setColor(String Color) { this.Color = Color; } public String toString() { return " Name: " + Name + " ID: " + ID + " Color: " + Color; } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Publishing With Filemaker Pro On The Web

Authors: Maria Langer

1st Edition

0201696657, 978-0201696653

More Books

Students also viewed these Databases questions