Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Javafx - I\'m not sure if my flower is not saving or display function is not wor

ID: 3821715 • Letter: J

Question

Javafx - I'm not sure if my flower is not saving or display function is not working.

After I enter flower property and click save, then go back to menu - display, nothing is displaying.

//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<Plant> plantPack = new ArrayList<>();

  
   @Override
   public void start(Stage primaryStage) {
       EventHandler<ActionEvent> 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<ActionEvent> changeTabPlacement() {
       return new EventHandler<ActionEvent>() {
           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<ActionEvent>() {
           @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<Plant> 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);
      
   }
  
  
}

//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;
   }
  
  
}

//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;
   }
}

Explanation / Answer

package com.kodehelp.sftp; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; /** * @author kodehelp * */ public class SFTPinJava { /** * */ public SFTPinJava() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { String SFTPHOST = "10.20.30.40"; int SFTPPORT = 22; String SFTPUSER = "username"; String SFTPPASS = "password"; String SFTPWORKINGDIR = "/export/home/kodehelp/"; Session session = null; Channel channel = null; ChannelSftp channelSftp = null; try{ JSch jsch = new JSch(); session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT); session.setPassword(SFTPPASS); java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); channel = session.openChannel("sftp"); channel.connect(); channelSftp = (ChannelSftp)channel; channelSftp.cd(SFTPWORKINGDIR); File f = new File(FILETOTRANSFER); channelSftp.put(new FileInputStream(f), f.getName()); }catch(Exception ex){ ex.printStackTrace(); } } }

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote