Professional Documents
Culture Documents
Q) Develop a JavaFX application to create 3 scroll bars to give the count of students who scored
marks in Java CAT-I within the ranges 0-10,11-20 and 21-30 (min and max values should be 0 and
30). Draw a histogram representing these counts. When the mouse is placed over a particular bar in
the histogram, information regarding it should be displayed in a textfield (count and percentage of
that count etc). Color of the histogram bars should be changed as per the choice given through
radiobuttons.
JavaFX Code
package mypackage;
import javafx.scene.shape.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.input.*;
import javafx.geometry.*;
import javafx.beans.value.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.paint.Color;
launch(args);
primaryStage.setTitle("Hello World!");
sb1.setMin(0);
sb1.setMax(60);
sb1.setBlockIncrement(1);
sb1.setUnitIncrement(1);
sb1.setOrientation(Orientation.VERTICAL);
sb1.setLayoutX(200);
sb1.setLayoutY(50);
sb1.setValue(60);
sb2.setMin(0);
sb2.setMax(60);
sb2.setBlockIncrement(1);
sb2.setUnitIncrement(1);
sb2.setOrientation(Orientation.VERTICAL);
sb2.setLayoutX(300);
sb2.setLayoutY(50);
sb2.setValue(60);
sb3.setMin(0);
sb3.setMax(60);
sb3.setBlockIncrement(1);
sb3.setUnitIncrement(1);
sb3.setOrientation(Orientation.VERTICAL);
sb3.setLayoutX(400);
sb3.setLayoutY(50);
sb3.setValue(60);
l1.setLayoutX(135);
l1.setLayoutY(390-10);
l2.setLayoutX(130);
l2.setLayoutY(360-5);
l3.setLayoutX(130);
l3.setLayoutY(330-5);
l4.setLayoutX(130);
l4.setLayoutY(300-5);
l5.setLayoutX(130);
l5.setLayoutY(270-5);
l6.setLayoutX(130);
l6.setLayoutY(240-5);
l7.setLayoutX(130);
l7.setLayoutY(210-5);
xLabel1.setLayoutX(197);
xLabel1.setLayoutY(410);
xLabel2.setLayoutX(297);
xLabel2.setLayoutY(410);
xLabel3.setLayoutX(397);
xLabel3.setLayoutY(410);
sb1.valueProperty().addListener(new ChangeListener<Number>(){
r1.setHeight(val);
r1.setY(395 - val);
});
sb2.valueProperty().addListener(new ChangeListener<Number>(){
r2.setHeight(val);
r2.setY(395 - val);
});
sb3.valueProperty().addListener(new ChangeListener<Number>(){
r3.setHeight(val);
r3.setY(395 - val);
});
r11.setLayoutX(190);
r11.setLayoutY(450);
r12.setLayoutX(190);
r12.setLayoutY(470);
r13.setLayoutX(190);
r13.setLayoutY(490);
Anshdeep Singh Kapula 20BCE0797
r21.setLayoutX(290);
r21.setLayoutY(450);
r22.setLayoutX(290);
r22.setLayoutY(470);
r23.setLayoutX(290);
r23.setLayoutY(490);
r31.setLayoutX(390);
r31.setLayoutY(450);
r32.setLayoutX(390);
r32.setLayoutY(470);
r33.setLayoutX(390);
r33.setLayoutY(490);
r11.setToggleGroup(t1);
r12.setToggleGroup(t1);
r13.setToggleGroup(t1);
r21.setToggleGroup(t2);
r22.setToggleGroup(t2);
r23.setToggleGroup(t2);
r31.setToggleGroup(t3);
r32.setToggleGroup(t3);
r33.setToggleGroup(t3);
t1.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){
if(selected.equals("Red"))
r1.setFill(Color.RED);
else
if(selected.equals("Green"))
r1.setFill(Color.GREEN);
else
if(selected.equals("Blue"))
r1.setFill(Color.BLUE);
});
t2.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){
Anshdeep Singh Kapula 20BCE0797
if(selected.equals("Red"))
r2.setFill(Color.RED);
else
if(selected.equals("Green"))
r2.setFill(Color.GREEN);
else
if(selected.equals("Blue"))
r2.setFill(Color.BLUE);
});
t3.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){
if(selected.equals("Red"))
r3.setFill(Color.RED);
else
if(selected.equals("Green"))
r3.setFill(Color.GREEN);
Anshdeep Singh Kapula 20BCE0797
else
if(selected.equals("Blue"))
r3.setFill(Color.BLUE);
});
root.getChildren().remove(hover1);
hover1.setLayoutX(170);
hover1.setLayoutY(170);
root.getChildren().addAll(hover1);
});
root.getChildren().remove(hover1);
hover1.setLayoutX(270);
hover1.setLayoutY(170);
root.getChildren().addAll(hover1);
Anshdeep Singh Kapula 20BCE0797
});
root.getChildren().remove(hover1);
hover1.setLayoutX(370);
hover1.setLayoutY(170);
root.getChildren().addAll(hover1);
});
Label instruction = new Label("Use the scrollbars to adjust the bar of each class in the
histogram");
instruction.setLayoutX(150);
instruction.setLayoutY(10);
root.getChildren().addAll(sb1, sb2, sb3, r1, r2, r3, x, y, l1, l2, l3, l4, l5, l6, l7, xLabel1, xLabel2,
xLabel3, instruction);
primaryStage.setScene(scene);
primaryStage.show();
}
Anshdeep Singh Kapula 20BCE0797
Screenshots:-