1 / 2100%
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.input.*;
import javafx.scene.layout.*;
import javafx.stage.*;
import javafx.scene.shape.*;
import javafx.event.*;
import javafx.beans.value.*;
import javafx.util.*;
import javafx.animation.*;
public class Handout8 extends Application{
Rectangle rect;
Slider slider;
public void start (Stage stage){
Scene scene1 = new Scene( createPane(), 640, 480 ); // size of window
640x480
stage.setScene(scene1);
stage.show();
}
public Pane createPane(){
rect = new Rectangle(25, 50, 100, 100);
Pane pane = new Pane(rect);
slider = new Slider(100, 300, 200);
pane.getChildren().add(slider);
// ** Q6
KeyFrame k1 = new KeyFrame(Duration.seconds(1),
new KeyValue( rect.yProperty(), 100));
KeyFrame k2 = new KeyFrame(Duration.seconds(5),
new KeyValue( rect.yProperty(), 200));
Timeline anim = new Timeline(k1, k2);
Button b = new Button("Play");
b.setOnAction(event -> { anim.play();} );
pane.getChildren().add(b);
// ** Q9
pane.setOnMousePressed( event -> {
rect.setX(event.getX());
rect.setY(event.getY());
} );
pane.setOnMouseDragged( event -> {
rect.setWidth(event.getX()-rect.getX() );
rect.setHeight(event.getY()-rect.getY() );
});
// ** Q7-2
//MHandler m = new MHandler();
//pane.setOnMousePressed(m);
// ** Q8-2
//pane.setOnMouseDragged(m);
// ** Q5 Binding
//rect.xProperty().bind (slider.valueProperty() );
// ** Q4 Lambda Exp
//slider.valueProperty().addListener(event ->
{ rect.setX(slider.getValue() ); });
// ** Q3 Reguler Hander Class Impl
//SliderHandler sh=new SliderHandler();
//slider.valueProperty().addListener(sh);
return pane;
}
// *** Q7 Mour Hander
/*class MHandler implements EventHandler<MouseEvent> {
public void handle (MouseEvent e){
//rect.setX(e.getX());
//rect.setY(e.getY());
// *** Q8 ***
if(e.getEventType() == MouseEvent.MOUSE_PRESSED){
rect.setX(e.getX()); rect.setY(e.getY());
}
if(e.getEventType() == MouseEvent.MOUSE_DRAGGED){
rect.setWidth(e.getX() - rect.getX() );
rect.setHeight(e.getY() -rect.getY() );
}
}
}*/
// *** Q3 Inner class
class SliderHandler implements ChangeListener<Number>
{
public void changed(ObservableValue<? extends Number> ov,
Number oldValue, Number newValue){
rect.setX(slider.getValue());
}
}
}
Powered by TCPDF (www.tcpdf.org)
Students also viewed