2016-05-07 16 views
0

Ich bin immer noch ziemlich neu in Java und ich lerne immer noch. Ich habe noch nie zuvor Bilder verwendet, daher ist es möglich, dass ich Hilfe habe, ein Bild hinzuzufügen. Ich bin mir nicht sicher, was getan werden muss, um einen hinzuzufügen. Danke enter image description herejava - Bilder in javafx

hier ist der Code:

import javafx.application.Application; 
import javafx.beans.binding.StringBinding; 
import javafx.beans.property.BooleanProperty; 
import javafx.beans.property.ReadOnlyObjectProperty; 
import javafx.beans.property.SimpleStringProperty; 
import javafx.beans.property.StringProperty; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.ChoiceBox; 
import javafx.scene.control.RadioButton; 
import javafx.scene.control.TextArea; 
import javafx.scene.layout.BorderPane; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.Pane; 
import javafx.scene.layout.StackPane; 
import javafx.stage.Stage; 

class User { 
    private StringProperty order = new SimpleStringProperty(); 

    public String getOrder() { 
     return order.get(); 
    } 

    public void setOrder(String order) { 
     this.order.set(order); 
    } 

    public StringProperty orderProperty() { 
     return order; 
    } 
} 

public class pizza extends Application { 

    private User user = new User(); 

    @Override 
    public void start(Stage stage) throws Exception { 
     stage.setTitle("Pizza System"); 
     Button btn = new Button(); 
     btn.setText("place order"); 
     BorderPane pane = new BorderPane(); 
     pane.setBottom(btn); 
     btn.setOnAction(new EventHandler<ActionEvent>() { 
      @Override 
      public void handle(ActionEvent event) { 
       btn.setText("Order has been placed. Please wait at least 30 minutes."); 
       } 
     }); 





     RadioButton tomatoButton = new RadioButton("Tomato"); 
     RadioButton pepperButton = new RadioButton("Pepper"); 
     RadioButton mushroomButton = new RadioButton("Mushrooms"); 

     ChoiceBox<String> pizzaType = new ChoiceBox<String>(); 
     pizzaType.getItems().addAll("", "Small", "Medium", "Large"); 
     pizzaType.getSelectionModel().selectFirst(); 

     HBox topHBox = new HBox(15.0, tomatoButton, pepperButton, mushroomButton, pizzaType); 

     // create custom Binding that binds selection of radio buttons and choice box 
     StringBinding orderBinding = createOrderBinding(tomatoButton.selectedProperty(), pepperButton.selectedProperty(), mushroomButton.selectedProperty(), pizzaType.getSelectionModel().selectedItemProperty()); 
     // bind orderBinding to orderProperty of User 
     user.orderProperty().bind(orderBinding); 

     TextArea orderArea = new TextArea(); 
     // bind orderProperty of User to textProperty of TextArea 
     orderArea.textProperty().bindBidirectional(user.orderProperty()); 

     BorderPane root = new BorderPane(); 
     root.setTop(topHBox); 
     root.setCenter(orderArea); 
     root.setBottom(btn); 

     Scene scene = new Scene(root, 400, 300); 
     stage.setScene(scene); 
     stage.show(); 

    } 

    public StringBinding createOrderBinding(BooleanProperty tomato, BooleanProperty pepper, BooleanProperty mushroom, ReadOnlyObjectProperty<String> selectedPizzaType) { 
     StringBinding binding = new StringBinding() { 
      { 
       // bind 4 provided properties. 
       super.bind(tomato, pepper, mushroom, selectedPizzaType); 
      } 

      @Override 
      protected String computeValue() { 
       StringBuilder sb = new StringBuilder("Pizza content:\n"); 

       if (tomato.get()) 
        sb.append("\tTomato\n"); 
       if (pepper.get()) 
        sb.append("\tPepper\n"); 
       if (mushroom.get()) 
        sb.append("\tMushroom\n"); 

       sb.append("Pizza type:\n").append("\t" + selectedPizzaType.get()); 
       return sb.toString(); 
      } 
     }; 
     return binding; 
    } 

    public static void main(String[] args) { 
     Application.launch(args); 
    } 
} 
+0

Wo Sie das Bild platzieren wollen? Ich sehe kein [Image] (https://docs.oracle.com/javase/image/Imva.html), das in Ihrem Code definiert ist. – ItachiUchiha

+0

Ich möchte in der Mitte auf der rechten Seite platzieren –

Antwort

1

JavaFX verwendet eine Image die Image-Datei zu laden, und es hat einen Knoten ImageView genannt auf dem Bildschirm Diagramm, das Bild zu platzieren.

Anbetracht dessen, dass das Bild an der gleichen Stelle wie Ihre Klassendatei vorhanden ist, können Sie diese verwenden:

// Load Image 
Image image = new Image(getClass().getResource("image.jpg").toExternalForm()); 
// Set the Image on the ImageView 
ImageView imageView = new ImageView(image); 
// specify a size 
imageView.setFitWidth(200); 
imageView.setFitHeight(200); 
// Place ImageView in a container 
root.setRight(imageView);