Thursday, October 6, 2016

populated "javafx" "piechart" with database value

www.google.com

package application;

import java.sql.*;
import javafx.application.*;
import javafx.collections.*;
import javafx.scene.Scene;
import javafx.scene.chart.*;
import javafx.scene.chart.PieChart.Data;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;

public class PieChat extends Application{
Connection connection;
Statement statement;
TextField t=new TextField("Attendance");
TextField t2=new TextField("CT_Marks");
TextField t3=new TextField("Assignment");
TextField t4=new TextField("Others");
TextField t5=new TextField();
Button b=new Button("Show");
String s,s2,s5,s6;
double i,j,k,l;
ObservableList<Data> answer = FXCollections.observableArrayList();
public void start(Stage stage){

Pane pane=new Pane();
pane.setPrefSize(500,500);
PieChart pchart=new PieChart();
pchart.relocate(0, 70);
pane.getChildren().addAll(t5,b);
t5.relocate(150, 30);
b.relocate(300, 30);
Scene scene=new Scene(pane);
stage.setScene(scene);
stage.show();

b.setOnAction(e ->{
initializeDB();
try{
String sql="select Attendance,CT_Marks,Assignment,Others from performance where Roll='"+t5.getText()+"'";
ResultSet rset=statement.executeQuery(sql);
while(rset.next()){
//t.setText(rset.getString(1));
System.out.print("Searched");
answer.addAll(new PieChart.Data(t.getText(),rset.getDouble(1)),
               new PieChart.Data(t2.getText(),rset.getDouble(2)),new PieChart.Data(t3.getText(),rset.getDouble(3) ),new PieChart.Data(t4.getText(),rset.getDouble(4) ));
pchart.getData().addAll(answer);
pane.getChildren().add(pchart);
}
}catch(Exception ex){
return ;
}
});

}
//database connection//
private void initializeDB() {
try{
Class.forName("com.mysql.jdbc.Driver");
connection=DriverManager.getConnection("jdbc:mysql://localhost/mysql?useUnicode=yes&characterEncoding=UTF-8","root","");
statement=connection.createStatement();
}
catch(Exception ex){
ex.printStackTrace();
}

}
public static void main(String args[]){
launch(args);
}

}

Populated javafx BarChart with database value

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.scene.chart.PieChart.Data;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

public class row extends Application{
NumberAxis xAxis = new NumberAxis();
     CategoryAxis yAxis = new CategoryAxis();
     static String itemA = "Attendance";
     static String itemB = "CT_Marks";
     static String itemC = "Assignment";
     static String itemD = "Others";
     Connection connection;
     Statement statement;
     int i=1;
     int j=2;
XYChart.Data<String, Number> data =  new XYChart.Data<String, Number>();
public void start(Stage stage){
initializeDB();
Pane pane=new Pane();
pane.setPrefSize(600, 500);
BarChart<String,Number> bchart=new BarChart<String,Number>(yAxis, xAxis);
bchart.setPrefSize(550, 450);
bchart.setTitle("Summary");
   xAxis.setLabel("Values");
   xAxis.setTickLabelRotation(45);
   yAxis.setTickLabelRotation(45);
   yAxis.setLabel("Menus");
   XYChart.Series series1 = new XYChart.Series();
   XYChart.Series series2 = new XYChart.Series();
   series1.setName("2016");
      try{
      String sql="select ID,marks from value";
      ResultSet rset=statement.executeQuery(sql);
      while(rset.next()){
      XYChart.Data<String, Number> data =  new XYChart.Data<String, Number>(rset.getString(i),rset.getDouble(j));
      series1.getData().add(data);
      data.nodeProperty().addListener(new ChangeListener<Node>(){
      public void changed(ObservableValue<? extends Node>ov,Node oldNode,final Node node){
      if(node!=null){
      if(data.getYValue().doubleValue()>15){
      node.setStyle("-fx-bar-fill:green");
      }else if(data.getYValue().doubleValue()>10){
      node.setStyle("-fx-bar-fill:navy");
      }else if(data.getYValue().doubleValue()>5){
      node.setStyle("-fx-bar-fill:red");
      }else if(data.getYValue().doubleValue()>0){
      node.setStyle("-fx-bar-fill:black");
      }
      }
      }
      });
     
     
      } i++;j++;
   
      }catch(Exception e){
     
      }
   bchart.getData().addAll(series1);
   pane.getChildren().add(bchart);
Scene scene=new Scene(pane);
//scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
stage.setScene(scene);
stage.show();
}

private void initializeDB() {
try{
Class.forName("com.mysql.jdbc.Driver");
connection=DriverManager.getConnection("jdbc:mysql://localhost/mysql?useUnicode=yes&characterEncoding=UTF-8","root","");
statement=connection.createStatement();
}
catch(Exception ex){
ex.printStackTrace();
}
}

public static void main(String[] args) {
launch(args);

}

}

JavaFx registration frame

www.google.com