1+ package exercise_30_05 ;
2+
3+ import javafx .application .Application ;
4+ import javafx .geometry .Pos ;
5+ import javafx .scene .Scene ;
6+ import javafx .scene .control .Button ;
7+ import javafx .scene .input .MouseButton ;
8+ import javafx .scene .layout .BorderPane ;
9+ import javafx .scene .layout .HBox ;
10+ import javafx .stage .Stage ;
11+
12+ public class Exercise_30_05 extends Application {
13+ private final static double WIDTH = 300 ;
14+ private final static double HEIGHT = 300 ;
15+ private final static double RADIUS = 100 ;
16+
17+ @ Override
18+ public void start (Stage primaryStage ) {
19+ FanPane fanPane = new FanPane (WIDTH , HEIGHT , RADIUS );
20+
21+ HBox hBox = new HBox (5 );
22+ hBox .setAlignment (Pos .CENTER );
23+ Button pause = new Button ("Pause" );
24+ Button resume = new Button ("Resume" );
25+ Button reverse = new Button ("Reverse" );
26+ hBox .getChildren ().addAll (pause , resume , reverse );
27+
28+ BorderPane pane = new BorderPane (fanPane );
29+ pane .setBottom (hBox );
30+
31+ Scene scene = new Scene (pane , WIDTH , HEIGHT );
32+ primaryStage .setTitle ("Exercise_30_05" );
33+ primaryStage .setScene (scene );
34+ primaryStage .show ();
35+
36+ pause .setOnAction (e -> fanPane .suspend ());
37+ resume .setOnAction (e -> fanPane .resume ());
38+ reverse .setOnAction (e -> fanPane .reverse ());
39+
40+ pane .setOnMouseClicked (e -> {
41+ if (e .getButton ().equals (MouseButton .PRIMARY )) {
42+ fanPane .increaseSpeed ();
43+ }
44+ else if (e .getButton ().equals (MouseButton .SECONDARY )) {
45+ fanPane .decreaseSpeed ();
46+ }
47+ });
48+ }
49+
50+ public static void main (String [] args ) {
51+ launch (args );
52+ }
53+
54+ }
0 commit comments