मैं पैदा कर रहा हूँ एक mockup के एक जावा संस्करण के घर में डेटाबेस के लिए मेरी कंपनी है । मैं सफलतापूर्वक प्रदर्शन सभी प्रविष्टियों (इस मामले में ग्राहकों के लिए) में सूची देखने के लिए, लेकिन मैं चाहता हूँ करने के लिए सक्षम होना करने के लिए एक विधि कॉल और प्राप्त डेटा से सेल. उदाहरण के लिए, अगर मैं क्लिक किया है एक ग्राहक के साथ एक ग्राहक आईडी के 498, मैं चाहता हूँ करने के लिए कुछ तरीके का उपयोग करने के लिए आईडी(498) और फिर प्रदर्शन में अधिक जानकारी के लिए कि ग्राहक ID. मैं संभाल कर सकते हैं प्रदर्शित सभी जानकारी अपने आप को, मैं कर रहा हूँ बस के साथ संघर्ष करने के लिए कैसे डेटा का उपयोग कोशिकाओं के अंदर. प्रासंगिक कोड:
नियंत्रक वर्ग का टुकड़ा है कि भरता सूची देखें:
package com.verus.techtracker_2;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.util.Callback;
import java.net.URL;
import java.sql.*;
import java.util.ArrayList;
import java.util.ResourceBundle;
public class MainViewController {
ObservableList<ObservableList> data =
FXCollections.observableArrayList();
@FXML
private Label welcomeText;
@FXML
private ListView<ObservableList> OrgTbl2;
private orgmodel org;
@FXML
private static Connection conn;
private static final String url = "jdbc:sqlserver://10.9.32.46:1433;database=TechTracker;integratedSecurity=true";
public MainViewController() {
}
public static Connection connect() throws SQLException {
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
}catch(ClassNotFoundException cnfe){
System.err.println("Error: "+cnfe.getMessage());
}catch(InstantiationException ie){
System.err.println("Error: "+ie.getMessage());
}catch(IllegalAccessException iae){
System.err.println("Error: "+iae.getMessage());
}
conn = DriverManager.getConnection(url);
return conn;
}
public static Connection getConnection() throws SQLException, ClassNotFoundException{
if(conn !=null && !conn.isClosed())
return conn;
connect();
return conn;
}
public void initialize (URL url, ResourceBundle resourceBundle) throws SQLException, ClassNotFoundException {
loadData();
}
ResultSet rs = null;
public void loadData() throws SQLException, ClassNotFoundException {
getConnection();
ObservableList<orgmodel> OrganizationObservableList = FXCollections.observableArrayList();
try{
PreparedStatement ps = connect().prepareStatement("SELECT CustomerName,CustomerID, Inactive FROM dbo.tbCustomers");
rs=ps.executeQuery();
System.out.println(rs);
/**
* ******************************
* Data added to ObservableList *
*******************************
*/
while (rs.next()) {
//Iterate Row
ObservableList<String> 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);
org = new orgmodel(rs.getString(1), rs.getString(2), rs.getBoolean(3));
OrganizationObservableList.add(org);
}
//FINALLY ADDED TO TableView
OrgTbl2.setItems(data);
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error on Building Data");
}
}
}
FXML फ़ाइल का यह दृश्य है:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1000.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.verus.techtracker_2.MainViewController">
<children>
<VBox layoutX="130.0" layoutY="58.0" prefHeight="200.0" prefWidth="100.0" />
<ListView fx:id="OrgTbl2" layoutX="7.0" layoutY="6.0" onMouseClicked="#loadData" prefHeight="987.0" prefWidth="958.0" />
</children>
</AnchorPane>