Question: Introduction to Java Chapte 35 exercise 35.3 Write a program that displays the content for a given table. you enter a table and click the

Introduction to Java Chapte 35 exercise 35.3

Write a program that displays the content for a given table. you enter a table and click the Show Contents button to display the table contents in a table view.

I am having a problem with the populating the table.

Code:

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.application.Application; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.stage.Stage; import javafx.scene.control.ScrollPane; import javafx.scene.control.TextArea; import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn.CellDataFeatures; import javafx.scene.control.TableView; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.util.Callback;

public class DisplayTable extends Application{ //Enrollment table with four fields //ssn|courseID|dateRegistered| grade private TextField tfTableName = new TextField(); private TableView tableView = new TableView(); private Button btShowContents = new Button ("show contents"); private Label lblStatus = new Label(); //statement to execute queries private Statement stmt; public void start(Stage primaryStage) { HBox hBox = new HBox(5); hBox.getChildren().addAll(new Label ("Table Name"), tfTableName, btShowContents); hBox.setAlignment(Pos.CENTER); BorderPane pane = new BorderPane(); pane.setCenter(tableView); pane.setTop(hBox); pane.setBottom(lblStatus); Scene scene = new Scene(pane, 500,200); primaryStage.setTitle("Gina's last programm"); primaryStage.setScene(scene); primaryStage.show(); initalizeDB(); btShowContents.setOnAction(e -> showContents()); } // end of start method private void initalizeDB() { try{ // load the JDBC driver Class.forName("com.mysql.jdbc.Driver"); System.out.println("Driver Loaded"); //establish a connection Connection connection = DriverManager.getConnection("\"jdbc:mysql://localhost/javabook", "scott", "tiger");

System.out.println("Database Connected"); //create a statement stmt = connection.createStatement(); }catch (Exception ex){ ex.printStackTrace(); } }//end of initalizeDB private void showContents() { String tableName = tfTableName.getText(); try{ String queryString = "SELECT * FROM" + tableName; ResultSet resultSet = stmt.executeQuery(queryString); populateTableView( resultSet, tableView); }catch (SQLException ex){ ex.printStackTrace(); //end of Show Content public void populateTableView (ResultSet rs, TableView tv){ ObservableList data =FXCollections.observableArrayList(); for (int i =0; i,) ObservableValue>() { public ObservableValue call (CellDataFeatures) param){ if (param ==null|| param.getValue()==null || param.getValue().get(j)= return null; } return new SimpleStringProperty(param.getValue().get) } }); tableView.getColumns().addAll(col); System.out.println("Column[" +i + "]"); }

//data add to observableList while(rs.next()){ // iterate ObservableList row = FXCollections.observableArrayList for(int i =1; i<=rs.getMetaData().getColumnCount(); i++) //iterate column row.add(rs.getString(i)); } System.out.println("Row [1] added" + row); data.add(row);

//add to TableView tv.setItems(data); }catch (Exception e) ( e.printStackTrace(); System.out.printlin ("Error on Builing data"); } }//End of PopulateTable Method

}//end of DisplayTable class

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!