jeudi 14 mai 2015

JavaFx setOnMouseClicked

Hallo.

Ich stelle mehrere Vierecke her. Lade sie in die pane, etc.
Sie werden also in einem neuen Fenster angezeigt. Funktioniert.

Nur hiermit habei ich ein Problem: Wenn ich draufdruecke, dann sollte es eigentlich Ein Vierreck aus der
ArrayList entfernen: vierecke.remove(0);
Doch das gewisse Vierreck wird weiterhin angezeigt!

Java Code:

  1.  
  2. Viereck testo;
  3. testo = new Viereck(VIERECKWEITE, VIERECKHOEHE, WIDTH, HEIGHT);
  4.  
  5.  
  6. testo.setOnMouseClicked(
  7. new EventHandler<MouseEvent>() {
  8.  
  9.  
  10. @Override public void handle(MouseEvent e) {
  11.  
  12. vierecke.remove(0);
  13. }
  14. });
  15.  
  16. vierecke.add(testo);










Java Code:

  1.  
  2. import javafx.application.Application;
  3. import javafx.collections.FXCollections;
  4. import javafx.collections.ObservableList;
  5. import javafx.event.EventHandler;
  6. import javafx.scene.Scene;
  7. import javafx.scene.control.Label;
  8. import javafx.scene.control.ListView;
  9. import javafx.scene.input.MouseEvent;
  10. import javafx.scene.layout.StackPane;
  11. import javafx.scene.layout.VBox;
  12. import javafx.stage.Stage;
  13.  
  14. import javafx.application.*;
  15. import javafx.stage.*;
  16. import javafx.scene.*;
  17. import javafx.scene.layout.*;
  18. import javafx.scene.control.*;
  19. import javafx.event.*;
  20.  
  21. import javafx.scene.image.Image;
  22. import javafx.scene.image.ImageView;
  23.  
  24. import javafx.application.*;
  25. import javafx.stage.*;
  26. import javafx.scene.*;
  27. import javafx.event.*;
  28. import javafx.scene.layout.*;
  29. import javafx.scene.shape.*;
  30. import javafx.scene.paint.*;
  31. import javafx.animation.*;
  32. import javafx.util.*;
  33. import java.util.*;
  34. import java.util.ArrayList;
  35. import java.util.List;
  36.  
  37.  
  38. import javafx.application.Application;
  39. import javafx.collections.FXCollections;
  40. import javafx.collections.ObservableList;
  41. import javafx.scene.Scene;
  42. import javafx.scene.control.Label;
  43. import javafx.scene.control.ListView;
  44. import javafx.scene.layout.StackPane;
  45. import javafx.scene.layout.VBox;
  46. import javafx.stage.Stage;
  47. import javafx.application.*;
  48. import javafx.stage.*;
  49. import javafx.scene.*;
  50. import javafx.scene.layout.*;
  51. import javafx.scene.control.*;
  52. import javafx.event.*;
  53. import javafx.scene.image.Image;
  54. import javafx.scene.image.ImageView;
  55. import javafx.application.*;
  56. import javafx.stage.*;
  57. import javafx.scene.*;
  58. import javafx.event.*;
  59. import javafx.scene.layout.*;
  60. import javafx.scene.shape.*;
  61. import javafx.scene.paint.*;
  62. import javafx.animation.*;
  63. import javafx.util.*;
  64.  
  65. import java.util.*;
  66.  
  67. import javafx.application.*;
  68. import javafx.stage.*;
  69. import javafx.scene.*;
  70. import javafx.event.*;
  71. import javafx.scene.layout.*;
  72. import javafx.scene.shape.*;
  73. import javafx.scene.paint.*;
  74. import javafx.animation.*;
  75. import javafx.util.*;
  76.  
  77. import java.util.*;
  78.  
  79.  
  80.  
  81. public class Test extends Application {
  82.  
  83. public static void main(String[] args)
  84. {
  85. launch(args);
  86. }
  87.  
  88. final public int WIDTH = 600;
  89. final public int HEIGHT = 500;
  90. final public int VIERECKWEITE = 5;
  91. final public int VIERECKHOEHE = 5;
  92.  
  93. public ArrayList<Viereck> vierecke = new ArrayList<Viereck>();
  94.  
  95.  
  96. @Override public void start(final Stage primaryStage)
  97. {
  98.  
  99.  
  100. Group root = new Group(); // hier group root fuer spaetere pane
  101.  
  102.  
  103.  
  104. // hier erstelle ich nur massenhaft Vierrecke und fuege sie ArrayList vierecke zu
  105.  
  106. for (int i = 0; i < 4; i++) // hier die instanzen von Viereck erstellen u alles uebergeben
  107. vierecke.add(new Viereck(VIERECKWEITE, VIERECKHOEHE, WIDTH, HEIGHT));
  108.  
  109.  
  110.  
  111. // hier erstelle ich ein Vierreck, wenn ich auf es clicke, dann sollte es eigentlich ein anderes entfernen
  112. // habe die Viereck testo nach oben eingefuehrt, hat auch nicht geholfen
  113.  
  114.  
  115. Viereck testo;
  116. testo = new Viereck(VIERECKWEITE, VIERECKHOEHE, WIDTH, HEIGHT);
  117.  
  118.  
  119. testo.setOnMouseClicked(
  120. new EventHandler<MouseEvent>() {
  121.  
  122.  
  123. @Override public void handle(MouseEvent e) {
  124.  
  125.  
  126.  
  127.  
  128. vierecke.remove(0);
  129.  
  130.  
  131. }
  132. });
  133.  
  134.  
  135. vierecke.add(testo);
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145. Viereck test5;
  146. test5 = new Viereck(VIERECKWEITE, VIERECKHOEHE, WIDTH, HEIGHT);
  147.  
  148. vierecke.add(test5);
  149.  
  150.  
  151.  
  152.  
  153. // hier der pane hinzufuegen etc ..
  154.  
  155.  
  156. root.getChildren().addAll(vierecke);
  157.  
  158.  
  159.  
  160.  
  161. Scene scene = new Scene(root, WIDTH, HEIGHT);
  162. primaryStage.setTitle("Voller Vierecke");
  163. primaryStage.setScene(scene);
  164. primaryStage.show();
  165.  
  166.  
  167.  
  168.  
  169. }
  170.  
  171. }


JavaFx setOnMouseClicked

0 commentaires:

Enregistrer un commentaire