Create a Java FX GUI program that allows the user to insert
Create a Java FX GUI program that allows the user to insert data into a SQL database. The goal of this project is to write a basic Java FX GUI database program. The program should have a list component which on launching the program shows the contents of the database. Also the program should present the user with a form of TextFields for capturing data to insert into a database (use the CPU database you created in previous projects). The form should also have a submit button which will attempt to create a new record in the database. The data should be validated first (numbers, text, blank, etc.). If the data is invalid nothing should be inserted into the database and a warning message should be presented to the user via a Label component. If a record is inserted into the database the List should be updated to include the new record. The report needs to be in the following format: Intel Core i7-6700HQ @ 2.60GHz: $1,509.00 Intel Core i7-3770K @ 3.50GHz: $560.50 Intel Core i5-3570K @ 3.40GHz: $477.23 Intel Core i7-4700MQ @ 2.40GHz: $467.40
SQL database: create database intelprocessors; use intelprocessors; show tables; create table computers(id int not null auto_increment primary key, cpuname varchar( 32 ) not null, performance varchar( 32 ) not null, price float); describe computers;
I need to get my code to read and from the SQL database and and then manipulate the database per the instructions above.
This is what I have so far:
//CPUTable.java
import javafx.application.*;
 import javafx.beans.value.*;
 import javafx.collections.*;
 import javafx.geometry.*;
 import javafx.scene.*;
 import javafx.scene.control.*;
 import javafx.scene.layout.*;
 import javafx.stage.*;
 import java.util.Date;
 import javafx.scene.control.cell.*;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
import java.sql.*;
 import java.util.*;
public class CPUTable extends Application{
   private Label response;
    private Label heading;
   
    private TextField cpuField;
    private TextField performanceField;
    private TextField priceField;
    private Button addBtn;
   
    // The table graphic component
    TableView< Computer > CPUTable;
   
    public static void main( String[] args ){
        launch( args );
    }
   
    public void start( Stage myStage ){
   
        myStage.setTitle( \"CPU Table\" );
        FlowPane rootNode = new FlowPane( 10, 10 );
        rootNode.setAlignment( Pos.CENTER );
        Scene myScene = new Scene( rootNode, 400, 400 );
        myStage.setScene(myScene);
       
        response = new Label( \"\" );
        heading = new Label( \"CPU Table\" );
       
        // The data structure that is under the table - it alerts the table when
        // it is modified
        ObservableList< Computer > ComputerList = FXCollections.observableArrayList(
            new Computer( \"TitleA\", \"111\", \"2016\" ),
            new Computer( \"TitleB\", \"222\", \"2016\" )
           
        );
   
       
        // The view that is connected to the list.
        CPUTable = new TableView< Computer >( ComputerList );
       
        // Sets up a column in the table.
        // By using properties with field names that follow the convention
        // we can easily connect a field from the datatype to a column in our
        // table.
        TableColumn< Computer, String > cpuCol = new TableColumn<>( \"CPU name\" );
        cpuCol.setCellValueFactory( new PropertyValueFactory<>( \"cpu name\" ) );
        CPUTable.getColumns().add( cpuCol );
       TableColumn< Computer, String > performanceCol = new TableColumn<>( \"Performance\" );
        performanceCol.setCellValueFactory( new PropertyValueFactory<>( \"performance\" ) );
        CPUTable.getColumns().add( performanceCol );
       TableColumn< Computer, String > priceCol = new TableColumn<>( \"Price\" );
        priceCol.setCellValueFactory( new PropertyValueFactory<>( \"price\" ) );
        CPUTable.getColumns().add( priceCol );
       
       
        CPUTable.setPrefWidth( 400 );
        CPUTable.setPrefHeight( 200 );
       
        // The selection model is what we need to look at to connect listeners to
        // to be able to handle acitons.
        TableView.TableViewSelectionModel< Computer > ComputerSelectionModel = CPUTable.getSelectionModel();
        ComputerSelectionModel.selectedIndexProperty().addListener(
            new ChangeListener< Number >(){
                public void changed( ObservableValue< ? extends Number > changed, Number oldValue, Number newValue){
                    Computer tempComputer = ComputerList.get( newValue.intValue() );
                    response.setText( \"SelectedRow: \" + newValue + \", with title: \" + tempComputer.getCpu() );
                   
                }
            }
        );
       
        cpuField = new TextField();
        performanceField = new TextField();
        priceField = new TextField();
        addBtn = new Button( \"Submit\" );
       
        addBtn.setOnAction(
            new EventHandler< ActionEvent >(){
                public void handle( ActionEvent ae ){
                    ComputerList.add(
                        new Computer(
                        cpuField.getText(),
                        performanceField.getText(),
                        priceField.getText()
                        )
                    );
                    cpuField.clear();
                    performanceField.clear();
                    priceField.clear();
                }
            }
        );
      
        rootNode.getChildren().addAll( heading, CPUTable, response, cpuField, performanceField, priceField, addBtn );
        myStage.show();
       
    }
   
 }
-----------------------------------------------------------------------------------------------------------------------------
//Computer.java
import javafx.beans.property.*;
public class Computer{
   private SimpleIntegerProperty id;
    private SimpleStringProperty cpu;
    private SimpleStringProperty performance;
    private SimpleStringProperty price;
       
   
    public Computer( String c, String s, String p ){
        cpu = new SimpleStringProperty( c );
        performance = new SimpleStringProperty( s );
        price = new SimpleStringProperty( p );
       
    }  
   public void setCpu( String c ){
        cpu.set( c );
    }
   
    public String getCpu(){
        return cpu.get();
    }
   public void setperformance( String s ){
        performance.set( s );
    }
   
    public String getperformance(){
        return performance.get();
    }
   
    public void setPrice( String p ){
        price.set( p );
    }
  
    public String getPrice(){
        return price.get();
    }
}
------------------------------------------------------------------------------------------------------
//ComputerList.java
/*
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
 public class ComputerList
 {
 ArrayList<Computer> theList = new ArrayList<>();
public void ComputerList()
 {
}
public void AddComputer(String strInputLine)
 {
 theList.add(new Computer(strInputLine));
 }
public void AddComputer(Computer tempComputer)
 {
 theList.add(tempComputer);
 }
public String toString()
 {
 String strString = \"\";
for (Computer Computer : theList)
 {
 strString += Computer;
 }
return(strString);
 }
 public void ShowReport()
 {
 for(Computer objComputer : theList)
 {
 System.out.printf(\"%s: %5.2f\ \", objComputer.getComputerName(), objComputer.getPrice());
 }
 }
public void CleanComputerList()
 {
 Iterator<Computer> it = theList.iterator();
while( it.hasNext() )
 {
 Computer objComputer = it.next();
if(objComputer.getValid() == false)
 {
 it.remove();
 }
 }
 }
 }
*/
Solution
import javafx.application.*;
 import javafx.beans.value.*;
 import javafx.collections.*;
 import javafx.geometry.*;
 import javafx.scene.*;
 import javafx.scene.control.*;
 import javafx.scene.layout.*;
 import javafx.stage.*;
 import java.util.Date;
 import javafx.scene.control.cell.*;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import java.sql.*;
 import java.util.*;
 public category CPUTable extends Applicationpersonal Label response;
 non-public Label heading;
   
 non-public TextField cpuField;
 non-public TextField performanceField;
 non-public TextField priceField;
 non-public Button addBtn;
   
 // The table graphic part
 TableView< pc > CPUTable;
   
 public static void main( String[] args )
   
 public void start( Stage myStage )modified( ObservableValue< ? extends variety > changed, variety oldValue, variety newValue){
 pc tempComputer = ComputerList.get( newValue.intValue() );
 response.setText( \"SelectedRow: \" + newValue + \", with title: \" + tempComputer.getCpu() );
   
 }
 }
 );
   
 cpuField = new TextField();
 performanceField = new TextField();
 priceField = new TextField();
 addBtn = new Button( \"Submit\" );
   
 addBtn.setOnAction(
 new EventHandler< ActionEvent >()
 }
 );
   
 rootNode.getChildren().addAll( heading, CPUTable, response, cpuField, performanceField, priceField, addBtn );
 myStage.show();
   
 }
   
 }
 -----------------------------------------------------------------------------------------------------------------------------
  //Computer.java
 import javafx.beans.property.*;
 public category Computerpersonal SimpleIntegerProperty id;
 non-public SimpleStringProperty cpu;
 non-public SimpleStringProperty performance;
 non-public SimpleStringProperty price;
   
   
 public Computer( String c, String s, String p )C.P.U. = new SimpleStringProperty( c );
 performance = new SimpleStringProperty( s );
 worth = new SimpleStringProperty( p );
   
 }
 public void setCpu( String c )
   
 public String getCpu()
 public void setperformance( String s )
   
 public String getperformance()come performance.get();
 }
   
 public void setPrice( String p )
   
 public String getPrice()come worth.get();
 }
 }
 ------------------------------------------------------------------------------------------------------
 
 //ComputerList.java
 /*
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
public category ComputerList
public void AddComputer(String strInputLine)
   
 public void AddComputer(Computer tempComputer)
   
 public String toString()
 {
 String strString = \"\";
 for (Computer pc : theList)
   
 return(strString);
 }
public void ShowReport()
   
 }
 }
 }






