JavaFX Position von Image angeben/verändern

Franzl

Neues Mitglied
Hallo,
ich soll ein Aquarium programmieren. Verwenden möchte ich gerne JavaFX. Bin aber leider noch Anfänger.
Das Hintergrundbild funktioniert so weit, mein Fisch wird auch angezeigt. Allerdings scheint das Bild, d.h der Fisch, standardmäßig immer in der Mitte des Fensters angezeigt zu werden. Da sich die Fische später ja bewegen sollen, wäre es zunächst einmal gut zu wissen, wie ich eine bestimmte Position für das Bild angegeben kann.

Java:
public class gui extends Application implements EventHandler<ActionEvent> {
    
    Button button;
    ImageView imageView;

  public static void main(String[] args) {
      launch(args);
   
  }

  
  @Override
  public void start(Stage primaryStage) throws Exception {
    primaryStage.setTitle("Gui Example");
    
    StackPane layout = new StackPane();
   
    Image arielle = new Image("fish.png");
    imageView = new ImageView(fish);    
    layout.getChildren().add(imageView);
     
    Scene scene = new Scene(layout, 800, 450);   
    scene.getStylesheets().add("style.css");
    primaryStage.setScene(scene);
    primaryStage.show();
   

  }


@Override
  public void handle(ActionEvent event) {
    if(event.getSource()==button) {
          System.out.println("Läuft.");
    
  }

} 

}

Hoffe, es kann mir jemand helfen. 🙂
 
Zuletzt bearbeitet:
Ich glaube am einfachsten ist es, indem du einen Button erzeugst und dann das Image aufnimmst. Dem Button selber kannst du dann koordinaten zuweisen. Wie das geschieht, darüber solltest du dir dann selber Gedanken machen.

Generell würde ich direkt eine Klasse Fisch erstellen mit all seinen Eigenschaften.
 
Das das Bild in der Mitte erscheint, könnte einfach am Container liegen, in dem du das Bild eingefügt hast.

IMHO hast du zwei Varianten:
- Nutze ein Canvas (Leinwand) und "male" dein Bild darauf und ein Timer legt fest, wann ein neuer Mal-Zyklus beginnt.
- Oder du bleibst bei deiner ImageView Lösung und translatest dein Bild durch die Gegend. Dazu musst du dann berechnen, wie gross dein Fenster gerade ist (also wie weit nach links, rechts, oben und unten dein Fisch kann - inkl. der grösse des Fisch-Bilds) und dann via Animation oder so (wobei die normalen Animationen eine Beschleunigung haben - könnte komisch aussehen) den Fisch verschieben. Ein Timer muss dann wieder dafür sorgen, das nur nächsten Punkt animiert wird. Vielleicht könnte man hier eine Pfad-Animation verwenden...
 

Neue Themen


Zurück
Oben