Advertisement
Guest User

Untitled

a guest
Nov 24th, 2018
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.10 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. btUpward.setOnAction(e ->
  239. {
  240.  
  241. y -= 40;
  242. pet.setTranslateY(y);
  243. a -= 25;
  244. b -= 25;
  245. pet.setFitHeight(a);
  246. pet.setFitWidth(b);
  247. dog.Upward();
  248. if(dog.distanceV > 0){btDownward.setDisable(false);}
  249. if(dog.distanceV > 20) {btUpward.setDisable(true);}
  250.  
  251. });
  252.  
  253. btDownward.setDisable(true); ///////////////////////////UPDATE/////////////////////////////////////
  254.  
  255. btDownward.setOnAction(e ->
  256. {
  257.  
  258. y += 40;
  259. pet.setTranslateY(y);
  260. a += 25;
  261. b += 25;
  262. pet.setFitHeight(a);
  263. pet.setFitWidth(b);
  264. dog.Downward();
  265. if(dog.distanceV == 0) {btDownward.setDisable(true);} //////////UPDATE/////////////////////////////
  266. if(dog.distanceV < 22) {btUpward.setDisable(false);} ///////////UPDATE///////////////////////////
  267. });
  268.  
  269.  
  270.  
  271.  
  272.  
  273. ////////////////////////////Temperature buttons and property//////////////////////////////////////////////////////////
  274.  
  275. Temperature temp = new Temperature();
  276. Text label = new Text("The current temperature: " + temp.GetTemperature());
  277. label.setFont(Font.font("Arial", FontWeight.BOLD, 20));
  278. label.setFill(Color.BEIGE);
  279. label.setStyle("-fx-background-color: coral;");
  280. Button tempUp = new Button("TempUp");
  281.  
  282. Button tempDown = new Button("TempDown");
  283. tempUp.setOnAction(e ->{
  284. temp.SetTemperatureUp();
  285. label.setText("The current temperature: " + temp.GetTemp());
  286. if(temp.GetTemp()==70) {
  287. pane.setStyle( "-fx-background-image: url(" +
  288. "'backyard.jpg'" +
  289. "); " +
  290. "-fx-background-size: cover;");
  291. }
  292. if(temp.GetTemp() == 100) {
  293.  
  294.  
  295. 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);
  296. alert.setHeaderText("Too hot alert!");
  297. alert.showAndWait();
  298. if(alert.getResult() == ButtonType.NO) {
  299.  
  300. pane.setStyle( "-fx-background-image: url(" +
  301. "'scotching.jpg'" +
  302. "); " +
  303. "-fx-background-size: cover;");
  304. }
  305. if (alert.getResult() == ButtonType.YES) {
  306. Button button = new Button("Back");
  307. button.setStyle("-fx-background-color: YELLOW");
  308. GridPane pane1 = new GridPane();
  309. Stage stage1 = new Stage();
  310. pane1.setStyle( "-fx-background-image: url(" +
  311. "'room.jpg'" +
  312. "); " +
  313. "-fx-background-size: cover;");
  314. ImageView ima = new ImageView();
  315. ima.setImage(new Image("dog hot.gif"));
  316. ima.setFitHeight(350);
  317. ima.setFitWidth(350);
  318. ImageView AC = new ImageView();
  319. AC.setImage(new Image("AC.gif"));
  320. AC.setFitHeight(100);
  321. AC.setFitWidth(150);
  322. button.setOnAction(en->{
  323. stage1.close();
  324. dogPanting.stop();
  325. mediaPlayer.play();
  326. stage.show();
  327. });
  328. pane1.setVgap(10);
  329. pane1.setHgap(10);
  330. pane1.add(button, 1, 1);
  331. pane1.add(ima, 7, 20);
  332. pane1.add(AC, 0, 1);
  333.  
  334. stage1.setScene(new Scene(pane1,800,800));
  335. stage1.show();
  336. mediaPlayer.stop();
  337. final URL dogPantingResource = getClass().getResource("dogPanting.mp3");
  338. final Media dogPantingMedia = new Media(dogPantingResource.toString());
  339. dogPanting = new MediaPlayer(dogPantingMedia);
  340. dogPanting.setOnEndOfMedia(new Runnable() {
  341. public void run() {
  342. dogPanting.seek(Duration.ZERO);
  343. }
  344. });
  345.  
  346. dogPanting.play();
  347. stage.close();
  348. }
  349.  
  350. }
  351.  
  352. });
  353. tempDown.setOnAction(e->{
  354. temp.SetTemperatureDown();
  355.  
  356. label.setText("The current temperature: " + temp.GetTemp());
  357. if(temp.GetTemp()==70) {
  358. pane.setStyle( "-fx-background-image: url(" +
  359. "'backyard.jpg'" +
  360. "); " +
  361. "-fx-background-size: cover;");
  362. }
  363.  
  364.  
  365. if(temp.GetTemp()== 50) {
  366.  
  367. 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);
  368. alert1.showAndWait();
  369. if (alert1.getResult() == ButtonType.YES) {
  370. Button button1 = new Button("Back");
  371. GridPane pane2 = new GridPane();
  372. Stage stage2 = new Stage();
  373. pane2.setStyle( "-fx-background-image: url(" +
  374. "'room.jpg'" +
  375. "); " +
  376. "-fx-background-size: cover;");
  377. ImageView imCold = new ImageView();
  378. imCold.setImage(new Image("dogHappy.gif"));
  379. imCold.setFitHeight(350);
  380. imCold.setFitWidth(350);
  381. ImageView heater = new ImageView();
  382. heater.setImage(new Image("heater.gif"));
  383. heater.setFitHeight(100);
  384. heater.setFitWidth(150);
  385. button1.setOnAction(en->{
  386. stage2.close();
  387. mediaPlayerHeaterNext.stop();
  388.  
  389. stage.show();
  390.  
  391. mediaPlayer.play();
  392. cuteBarking.play();
  393.  
  394. });
  395. pane2.setVgap(10);
  396. pane2.setHgap(10);
  397. pane2.add(button1, 1, 1);
  398. pane2.add(imCold, 7, 30);
  399. pane2.add(heater, 0, 1);
  400.  
  401. stage2.setScene(new Scene(pane2,800,800));
  402. stage2.show();
  403. mediaPlayer.stop();
  404. final URL resource = getClass().getResource("dogHappySound.mp3");
  405. final Media media1 = new Media(resource.toString());
  406. final URL resource1 = getClass().getResource("Calming-harp-music.mp3");
  407. final Media media2 = new Media(resource1.toString());
  408. mediaPlayerHeaterNext = new MediaPlayer(media2);
  409. mediaPlayerHeater = new MediaPlayer(media1);
  410. mediaPlayerHeater.play();
  411. mediaPlayerHeaterNext.play();
  412. stage.close();
  413. }
  414. if (alert1.getResult() == ButtonType.NO) {
  415. pane.setStyle( "-fx-background-image: url(" +
  416. "'snow.jpg'" +
  417. "); " +
  418. "-fx-background-size: cover;");
  419. }
  420.  
  421.  
  422. }
  423.  
  424. });
  425.  
  426. pane.add(tempUp, 0, 0);
  427. pane.add(tempDown, 0, 1);
  428. pane.add(label,0,2);
  429.  
  430.  
  431.  
  432.  
  433. String dogFood = "dogFood.jpeg";
  434. String dogWater = "15-154507_cartoon-dog-water-bowl.png";
  435. ImageView imFood = new ImageView();
  436. ImageView imWater = new ImageView();
  437. Date time = new Date();
  438. int i = time.getMonth() + 1;
  439. Text timing = new Text("The time: " + i + "/" + time.getDate() +"/2018 "
  440. + time.getHours() +":" + time.getMinutes());
  441. timing.setFont(Font.font("Arial", FontWeight.BOLD, 20));
  442. Button timeUp = new Button("time up");
  443. Button timeDo = new Button("time down");
  444. timeUp.setOnAction(e->{
  445. int min = time.getMinutes();
  446. time.setMinutes(min+=10);
  447. timing.setText("The time: " + i + "/" + time.getDate() +"/2018 "
  448. + time.getHours() +":" + time.getMinutes());
  449. if((time.getHours() == 7||time.getHours() == 15 )&& (time.getMinutes()>30&&time.getMinutes()<40)) {
  450.  
  451. imFood.setImage(new Image(dogFood));
  452. imFood.setFitHeight(50);
  453. imFood.setFitWidth(50);
  454. // imWater.setImage(new Image(dogWater));
  455. imWater.setFitHeight(50);
  456. imWater.setFitWidth(50);
  457.  
  458. pane.add(imFood, 1, 6);
  459. pane.add(imWater, 2, 6);
  460. }
  461. else {
  462. pane.getChildren().remove(imFood);
  463. pane.getChildren().remove(imWater);
  464. }
  465. });
  466. timeDo.setOnAction(e->{
  467. int min = time.getMinutes();
  468. time.setMinutes(min-=10);
  469. timing.setText("The time: " + i + "/" + time.getDate() +"/2018 "
  470. + time.getHours() +":" + time.getMinutes());
  471.  
  472. if((time.getHours() == 7||time.getHours() == 15 )&& (time.getMinutes()>30&&time.getMinutes()<40)) {
  473.  
  474. imFood.setImage(new Image(dogFood));
  475. imFood.setFitHeight(50);
  476. imFood.setFitWidth(50);
  477. // imWater.setImage(new Image(dogWater));
  478. imWater.setFitHeight(50);
  479. imWater.setFitWidth(50);
  480.  
  481. pane.add(imFood, 1, 6);
  482. pane.add(imWater, 2, 6);
  483. }
  484. else {
  485. pane.getChildren().remove(imFood);
  486. pane.getChildren().remove(imWater);
  487. }
  488. });
  489. //////////////////////////////objects added to pane//////////////////////////////////////////////////////////
  490.  
  491. pane.add(timeUp, 2, 0);
  492. pane.add(timeDo, 2, 1);
  493. pane.add(timing, 2, 2);
  494. pane.add(btMoveBackward,0, 15);
  495. pane.add(btMoveFordward, 0, 16);
  496. pane.add(btCheckDistance, 0, 17);
  497. pane.add(viewRecord,0, 18);
  498. pane.add(btUpward,0,13);
  499. pane.add(btDownward,0,14);
  500. /*pane.add(btTotalDistance, 1, 18);*/
  501. pane.add(pet,2,19);
  502.  
  503. /////////////////////////////////dog at pane:default (4,19)/////////////////////////////////////////////////
  504. pane.setStyle( "-fx-background-image: url(" +
  505. "'backyard.jpg'" +
  506. "); " +
  507. "-fx-background-size: cover;");
  508.  
  509.  
  510. stage.setScene(new Scene(pane, 925, 1500));/////////////////////////default(pane,900,1500)
  511. final URL resource = getClass().getResource("FunnyDay.mp3");
  512. final Media media = new Media(resource.toString());
  513. final URL cuteBarkingResource = getClass().getResource("dogCuteBarking.mp3");
  514. final Media cuteBarkingMedia = new Media(cuteBarkingResource.toString());
  515. cuteBarking= new MediaPlayer(cuteBarkingMedia);
  516. cuteBarking.play();
  517. mediaPlayer = new MediaPlayer(media);
  518. mediaPlayer.setOnEndOfMedia(new Runnable() {
  519. public void run() {
  520. mediaPlayer.seek(Duration.ZERO);
  521. }
  522. });
  523.  
  524. mediaPlayer.play();
  525.  
  526. stage.show();
  527. }
  528. public static void main(String[] args) {
  529. launch(args);
  530. }
  531.  
  532. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement