Advertisement
Guest User

Untitled

a guest
Nov 27th, 2018
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.11 KB | None | 0 0
  1. package DogHouse;
  2. import java.net.URL;
  3. import java.util.Date;
  4. import javafx.application.Application;
  5. import javafx.scene.Scene;
  6. import javafx.scene.control.Alert;
  7. import javafx.scene.control.Alert.AlertType;
  8. import javafx.scene.control.Button;
  9. import javafx.scene.control.ButtonType;
  10. import javafx.scene.image.Image;
  11. import javafx.scene.image.ImageView;
  12. import javafx.scene.layout.GridPane;
  13. import javafx.scene.media.Media;
  14. import javafx.scene.media.MediaPlayer;
  15. import javafx.scene.paint.Color;
  16. import javafx.scene.text.Font;
  17. import javafx.scene.text.FontWeight;
  18. import javafx.scene.text.Text;
  19. import javafx.stage.Stage;
  20. import javafx.util.Duration;
  21. import java.text.DecimalFormat;
  22. import java.text.NumberFormat;
  23. import java.lang.Math;
  24. import java.math.*;
  25. import java.util.Properties;
  26. import javax.mail.Message; ///////////////////////////UPDATE//////////////////////
  27. import javax.mail.MessagingException; ///////////////////////////UPDATE////////////////////
  28. import javax.mail.PasswordAuthentication; ///////////////////////////UPDATE//////////////////
  29. import javax.mail.Session; ////////////////////////////UPDATE///////////////
  30. import javax.mail.Transport; ///////////////////////////UPDATE///////////////
  31. import javax.mail.internet.InternetAddress;////////////////////////////UPDATE//////////////
  32. import javax.mail.internet.MimeMessage; //////////////////////////////UPDATE///////////
  33.  
  34. public class javaFXPane extends Application {
  35. private static MediaPlayer mediaPlayer;
  36. private static MediaPlayer cuteBarking;
  37. private static MediaPlayer dogPanting;
  38. private static MediaPlayer mediaPlayerHeater;
  39. private static MediaPlayer mediaPlayerHeaterNext;
  40. int x = 0; //variable to track pet x position
  41. int y = 0;//variable to track pet's y position
  42. int a = 250;//pet size
  43. int b = 250;//pet size
  44.  
  45.  
  46. @Override
  47. public void start(Stage stage) throws Exception {
  48. //class to register dog position
  49. DistanceFromHouse dog = new DistanceFromHouse();
  50.  
  51.  
  52. ImageView pet = new ImageView();
  53. ImageView dogHouse = new ImageView();
  54.  
  55.  
  56. //pet properties
  57. pet.setImage(new Image("dog.gif"));
  58. pet.setFitHeight(a);
  59. pet.setFitWidth(b);
  60. //pet coordinates
  61. pet.setX(0);
  62. pet.setY(0);
  63. pet.setOnMouseDragged(e -> {
  64. pet.setX(e.getX());
  65. pet.setY(e.getY());
  66. });
  67. //dog house image
  68. dogHouse.setImage(new Image("dogHouse.png"));
  69. dogHouse.setFitHeight(280);
  70. dogHouse.setFitWidth(400);
  71.  
  72. GridPane pane = new GridPane();
  73.  
  74. pane.setHgap(10);
  75. pane.setVgap(10);
  76. pane.add(dogHouse, 0, 19);
  77. Button viewRecord = new Button("View Record");
  78.  
  79. //buttons to move pet
  80. Button btCheckDistance = new Button("Check Distance");
  81.  
  82. Button btMoveFordward = new Button("Fordward");
  83.  
  84. Button btMoveBackward = new Button("backward");
  85.  
  86. Button btUpward = new Button ("Upward");
  87.  
  88. Button btDownward = new Button("Downward");
  89.  
  90. /*Button btTotalDistance = new Button("Total Distance");*/
  91.  
  92. viewRecord.setOnAction(e->{
  93.  
  94.  
  95.  
  96. });
  97. //buttons Action Event
  98.  
  99. //check distance button
  100. btCheckDistance.setOnAction( e ->
  101. {
  102.  
  103. ////////////////////////////////UPDATE///////////////////////////////////////////////
  104. dog.totalDistance();
  105.  
  106. Alert alert = new Alert(AlertType.INFORMATION);
  107. alert.setTitle("pet's distance");
  108. alert.setHeaderText(null);
  109.  
  110. if(dog.total>0)
  111. {
  112. alert.setContentText("The dog is now: "+dog.total +" feet from the dog house.");
  113. }
  114. else if(dog.total==0&&!(0<pet.getTranslateX()&&pet.getTranslateX()<dogHouse.getFitWidth()))
  115. {
  116. alert.setContentText("The dog is now: 0 feet from the dog house.");
  117. }
  118. else
  119. {
  120.  
  121. double distance = dog.total*(-1);
  122.  
  123.  
  124. alert.setContentText("The dog is now: "+ distance +" feet from the dog house.");
  125. }
  126.  
  127.  
  128.  
  129. alert.showAndWait();
  130. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  131.  
  132. });
  133. //forward button
  134. btMoveFordward.setOnAction((e) ->
  135. {
  136.  
  137. pet.setScaleX(1);
  138. x -= 40;
  139. pet.setTranslateX(x);
  140. dog.moveForward();
  141. if(dog.distance == 0 ){btMoveFordward.setDisable(true);}
  142. if(dog.distance < 39) {btMoveBackward.setDisable(false);}
  143.  
  144. ///////////////////////////////////////UPDATE////////////////////////////////////////////
  145.  
  146. dog.totalDistance();
  147. if(dog.total == 0)
  148. {
  149. final String username = "doghousemessage@gmail.com"; // enter your mail id
  150. final String password = "Victory5";// enter your password
  151.  
  152. Properties props = new Properties();
  153. props.put("mail.smtp.auth", "true");
  154. props.put("mail.smtp.starttls.enable", "true");
  155. props.put("mail.smtp.host", "smtp.gmail.com");
  156. props.put("mail.smtp.port", "587");
  157.  
  158. Session session = Session.getInstance(props,
  159. new javax.mail.Authenticator() {
  160. protected PasswordAuthentication getPasswordAuthentication() {
  161. return new PasswordAuthentication(username, password);
  162. }
  163. });
  164.  
  165. try {
  166.  
  167. Message message = new MimeMessage(session);
  168. message.setFrom(new InternetAddress("doghousemessage@gmail.com")); // same email id
  169. message.setRecipients(Message.RecipientType.TO,
  170. InternetAddress.parse("12134015251@mymetropcs.com"));// whom you have to send mails that person id
  171. message.setSubject("Alert");
  172. message.setText("Your dog is at the dog house!");
  173.  
  174. Transport.send(message);
  175.  
  176. //System.out.println("Done");
  177.  
  178. } catch (MessagingException e1) {
  179. throw new RuntimeException(e1);
  180. }
  181. }
  182. ///////////////////////////////////////////////////////////////////////////////////////////////////
  183. });
  184.  
  185. //backward button
  186. btMoveBackward.setOnAction(e ->
  187. {
  188.  
  189. pet.setScaleX(-1);
  190. x += 40;
  191. pet.setTranslateX(x);
  192. dog.moveBackward();
  193. if(dog.distance > 0){btMoveFordward.setDisable(false);};
  194. if(dog.distance > 39){btMoveBackward.setDisable(true);}
  195.  
  196.  
  197. /////////////////////////////////UPDATE////////////////////////////////////
  198.  
  199. dog.totalDistance();
  200. if(dog.total > 41)
  201. {
  202. final String username = "doghousemessage@gmail.com"; // enter your mail id
  203. final String password = "Victory5";// enter your password
  204.  
  205. Properties props = new Properties();
  206. props.put("mail.smtp.auth", "true");
  207. props.put("mail.smtp.starttls.enable", "true");
  208. props.put("mail.smtp.host", "smtp.gmail.com");
  209. props.put("mail.smtp.port", "587");
  210.  
  211. Session session = Session.getInstance(props,
  212. new javax.mail.Authenticator() {
  213. protected PasswordAuthentication getPasswordAuthentication() {
  214. return new PasswordAuthentication(username, password);
  215. }
  216. });
  217.  
  218. try {
  219.  
  220. Message message = new MimeMessage(session);
  221. message.setFrom(new InternetAddress("doghousemessage@gmail.com")); // same email id
  222. message.setRecipients(Message.RecipientType.TO,
  223. InternetAddress.parse("12134015251@mymetropcs.com"));// whom you have to send mails that person id
  224. message.setSubject("Alert");
  225. message.setText("Your dog is too far from the dog house!");
  226.  
  227. Transport.send(message);
  228.  
  229. //System.out.println("Done");
  230.  
  231. } catch (MessagingException e1) {
  232. throw new RuntimeException(e1);
  233. }
  234. }
  235.  
  236. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  237. });
  238.  
  239. btUpward.setOnAction(e ->
  240. {
  241.  
  242. y -= 40;
  243. pet.setTranslateY(y);
  244. a -= 25;
  245. b -= 25;
  246. pet.setFitHeight(a);
  247. pet.setFitWidth(b);
  248. dog.Upward();
  249. if(dog.distanceV > 0){btDownward.setDisable(false);}
  250. if(dog.distanceV > 20) {btUpward.setDisable(true);}
  251.  
  252. });
  253.  
  254. btDownward.setDisable(true); ///////////////////////////UPDATE/////////////////////////////////////
  255.  
  256. btDownward.setOnAction(e ->
  257. {
  258.  
  259. y += 40;
  260. pet.setTranslateY(y);
  261. a += 25;
  262. b += 25;
  263. pet.setFitHeight(a);
  264. pet.setFitWidth(b);
  265. dog.Downward();
  266. if(dog.distanceV == 0) {btDownward.setDisable(true);} //////////UPDATE/////////////////////////////
  267. if(dog.distanceV < 22) {btUpward.setDisable(false);} ///////////UPDATE///////////////////////////
  268. });
  269.  
  270.  
  271.  
  272.  
  273.  
  274. ////////////////////////////Temperature buttons and property//////////////////////////////////////////////////////////
  275.  
  276. Temperature temp = new Temperature();
  277. Text label = new Text("The current temperature: " + temp.GetTemperature());
  278. label.setFont(Font.font("Arial", FontWeight.BOLD, 20));
  279. label.setFill(Color.BEIGE);
  280. label.setStyle("-fx-background-color: coral;");
  281. Button tempUp = new Button("TempUp");
  282.  
  283. Button tempDown = new Button("TempDown");
  284. tempUp.setOnAction(e ->{
  285. temp.SetTemperatureUp();
  286. label.setText("The current temperature: " + temp.GetTemp());
  287. if(temp.GetTemp()==70) {
  288. pane.setStyle( "-fx-background-image: url(" +
  289. "'backyard.jpg'" +
  290. "); " +
  291. "-fx-background-size: cover;");
  292. }
  293. if(temp.GetTemp() == 100) {
  294.  
  295.  
  296. Alert alert = new Alert(AlertType.CONFIRMATION, "Too hot! Do you want to turn on the AC for your pet?", ButtonType.YES, ButtonType.NO, ButtonType.CANCEL);
  297. alert.setHeaderText("Too hot alert!");
  298. alert.showAndWait();
  299. if(alert.getResult() == ButtonType.NO) {
  300.  
  301. pane.setStyle( "-fx-background-image: url(" +
  302. "'scotching.jpg'" +
  303. "); " +
  304. "-fx-background-size: cover;");
  305. }
  306. if (alert.getResult() == ButtonType.YES) {
  307. Button button = new Button("Back");
  308. button.setStyle("-fx-background-color: YELLOW");
  309. GridPane pane1 = new GridPane();
  310. Stage stage1 = new Stage();
  311. pane1.setStyle( "-fx-background-image: url(" +
  312. "'room.jpg'" +
  313. "); " +
  314. "-fx-background-size: cover;");
  315. ImageView ima = new ImageView();
  316. ima.setImage(new Image("dog hot.gif"));
  317. ima.setFitHeight(350);
  318. ima.setFitWidth(350);
  319. ImageView AC = new ImageView();
  320. AC.setImage(new Image("AC.gif"));
  321. AC.setFitHeight(100);
  322. AC.setFitWidth(150);
  323. button.setOnAction(en->{
  324. stage1.close();
  325. dogPanting.stop();
  326. mediaPlayer.play();
  327. stage.show();
  328. });
  329. pane1.setVgap(10);
  330. pane1.setHgap(10);
  331. pane1.add(button, 1, 1);
  332. pane1.add(ima, 7, 20);
  333. pane1.add(AC, 0, 1);
  334.  
  335. stage1.setScene(new Scene(pane1,800,800));
  336. stage1.show();
  337. mediaPlayer.stop();
  338. final URL dogPantingResource = getClass().getResource("dogPanting.mp3");
  339. final Media dogPantingMedia = new Media(dogPantingResource.toString());
  340. dogPanting = new MediaPlayer(dogPantingMedia);
  341. dogPanting.setOnEndOfMedia(new Runnable() {
  342. public void run() {
  343. dogPanting.seek(Duration.ZERO);
  344. }
  345. });
  346.  
  347. dogPanting.play();
  348. stage.close();
  349. }
  350.  
  351. }
  352.  
  353. });
  354. tempDown.setOnAction(e->{
  355. temp.SetTemperatureDown();
  356.  
  357. label.setText("The current temperature: " + temp.GetTemp());
  358. if(temp.GetTemp()==70) {
  359. pane.setStyle( "-fx-background-image: url(" +
  360. "'backyard.jpg'" +
  361. "); " +
  362. "-fx-background-size: cover;");
  363. }
  364.  
  365.  
  366. if(temp.GetTemp()== 50) {
  367.  
  368. Alert alert1 = new Alert(AlertType.CONFIRMATION, "Too cold! Do you want to turn on the heater for your pet?", ButtonType.YES, ButtonType.NO, ButtonType.CANCEL);
  369. alert1.showAndWait();
  370. if (alert1.getResult() == ButtonType.YES) {
  371. Button button1 = new Button("Back");
  372. GridPane pane2 = new GridPane();
  373. Stage stage2 = new Stage();
  374. pane2.setStyle( "-fx-background-image: url(" +
  375. "'room.jpg'" +
  376. "); " +
  377. "-fx-background-size: cover;");
  378. ImageView imCold = new ImageView();
  379. imCold.setImage(new Image("dogHappy.gif"));
  380. imCold.setFitHeight(350);
  381. imCold.setFitWidth(350);
  382. ImageView heater = new ImageView();
  383. heater.setImage(new Image("heater.gif"));
  384. heater.setFitHeight(100);
  385. heater.setFitWidth(150);
  386. button1.setOnAction(en->{
  387. stage2.close();
  388. mediaPlayerHeaterNext.stop();
  389.  
  390. stage.show();
  391.  
  392. mediaPlayer.play();
  393. cuteBarking.play();
  394.  
  395. });
  396. pane2.setVgap(10);
  397. pane2.setHgap(10);
  398. pane2.add(button1, 1, 1);
  399. pane2.add(imCold, 7, 30);
  400. pane2.add(heater, 0, 1);
  401.  
  402. stage2.setScene(new Scene(pane2,800,800));
  403. stage2.show();
  404. mediaPlayer.stop();
  405. final URL resource = getClass().getResource("dogHappySound.mp3");
  406. final Media media1 = new Media(resource.toString());
  407. final URL resource1 = getClass().getResource("Calming-harp-music.mp3");
  408. final Media media2 = new Media(resource1.toString());
  409. mediaPlayerHeaterNext = new MediaPlayer(media2);
  410. mediaPlayerHeater = new MediaPlayer(media1);
  411. mediaPlayerHeater.play();
  412. mediaPlayerHeaterNext.play();
  413. stage.close();
  414. }
  415. if (alert1.getResult() == ButtonType.NO) {
  416. pane.setStyle( "-fx-background-image: url(" +
  417. "'snow.jpg'" +
  418. "); " +
  419. "-fx-background-size: cover;");
  420. }
  421.  
  422.  
  423. }
  424.  
  425. });
  426.  
  427. pane.add(tempUp, 0, 0);
  428. pane.add(tempDown, 0, 1);
  429. pane.add(label,0,2);
  430.  
  431.  
  432.  
  433.  
  434. String dogFood = "dogFood.jpeg";
  435. String dogWater = "15-154507_cartoon-dog-water-bowl.png";
  436. ImageView imFood = new ImageView();
  437. ImageView imWater = new ImageView();
  438. Date time = new Date();
  439. int i = time.getMonth() + 1;
  440. Text timing = new Text("The time: " + i + "/" + time.getDate() +"/2018 "
  441. + time.getHours() +":" + time.getMinutes());
  442. timing.setFont(Font.font("Arial", FontWeight.BOLD, 20));
  443. Button timeUp = new Button("time up");
  444. Button timeDo = new Button("time down");
  445. timeUp.setOnAction(e->{
  446. int min = time.getMinutes();
  447. time.setMinutes(min+=10);
  448. timing.setText("The time: " + i + "/" + time.getDate() +"/2018 "
  449. + time.getHours() +":" + time.getMinutes());
  450. if((time.getHours() == 7||time.getHours() == 15 )&& (time.getMinutes()>30&&time.getMinutes()<40)) {
  451.  
  452. imFood.setImage(new Image(dogFood));
  453. imFood.setFitHeight(50);
  454. imFood.setFitWidth(50);
  455. // imWater.setImage(new Image(dogWater));
  456. imWater.setFitHeight(50);
  457. imWater.setFitWidth(50);
  458.  
  459. pane.add(imFood, 1, 6);
  460. pane.add(imWater, 2, 6);
  461. }
  462. else {
  463. pane.getChildren().remove(imFood);
  464. pane.getChildren().remove(imWater);
  465. }
  466. });
  467. timeDo.setOnAction(e->{
  468. int min = time.getMinutes();
  469. time.setMinutes(min-=10);
  470. timing.setText("The time: " + i + "/" + time.getDate() +"/2018 "
  471. + time.getHours() +":" + time.getMinutes());
  472.  
  473. if((time.getHours() == 7||time.getHours() == 15 )&& (time.getMinutes()>30&&time.getMinutes()<40)) {
  474.  
  475. imFood.setImage(new Image(dogFood));
  476. imFood.setFitHeight(50);
  477. imFood.setFitWidth(50);
  478. // imWater.setImage(new Image(dogWater));
  479. imWater.setFitHeight(50);
  480. imWater.setFitWidth(50);
  481.  
  482. pane.add(imFood, 1, 6);
  483. pane.add(imWater, 2, 6);
  484. }
  485. else {
  486. pane.getChildren().remove(imFood);
  487. pane.getChildren().remove(imWater);
  488. }
  489. });
  490. //////////////////////////////objects added to pane//////////////////////////////////////////////////////////
  491.  
  492. pane.add(timeUp, 2, 0);
  493. pane.add(timeDo, 2, 1);
  494. pane.add(timing, 2, 2);
  495. pane.add(btMoveBackward,0, 15);
  496. pane.add(btMoveFordward, 0, 16);
  497. pane.add(btCheckDistance, 0, 17);
  498. pane.add(viewRecord,0, 18);
  499. pane.add(btUpward,0,13);
  500. pane.add(btDownward,0,14);
  501. /*pane.add(btTotalDistance, 1, 18);*/
  502. pane.add(pet,2,19);
  503.  
  504. /////////////////////////////////dog at pane:default (4,19)/////////////////////////////////////////////////
  505. pane.setStyle( "-fx-background-image: url(" +
  506. "'backyard.jpg'" +
  507. "); " +
  508. "-fx-background-size: cover;");
  509.  
  510.  
  511. stage.setScene(new Scene(pane, 925, 1500));/////////////////////////default(pane,900,1500)
  512. final URL resource = getClass().getResource("FunnyDay.mp3");
  513. final Media media = new Media(resource.toString());
  514. final URL cuteBarkingResource = getClass().getResource("dogCuteBarking.mp3");
  515. final Media cuteBarkingMedia = new Media(cuteBarkingResource.toString());
  516. cuteBarking= new MediaPlayer(cuteBarkingMedia);
  517. cuteBarking.play();
  518. mediaPlayer = new MediaPlayer(media);
  519. mediaPlayer.setOnEndOfMedia(new Runnable() {
  520. public void run() {
  521. mediaPlayer.seek(Duration.ZERO);
  522. }
  523. });
  524.  
  525. mediaPlayer.play();
  526.  
  527. stage.show();
  528. }
  529. public static void main(String[] args) {
  530. launch(args);
  531. }
  532.  
  533. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement