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 add to observableList while(rs.next()){ // iterate ObservableList
//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
Get step-by-step solutions from verified subject matter experts
