Ich brauche etwas Hilfe Ich habe dieses Pizza-Bestellsystem erstellt, das die Zutaten zu einer Liste hinzufügt, wenn Sie den Radiobutton drücken und dann die Größe der Pizza zu einer Liste hinzufügen. Das einzige, was ich jetzt brauche, ist der Bestellknopf. Ich glaube der Code ist richtig, aber aus irgendeinem Grund ist der Knopf nicht da. Ich bin mir nicht sicher, ob ich etwas falsch gemacht habe. Der Button ist mit der Ortsangabe gekennzeichnet. Vielen Dank für die Hilfe hier ist der Code:Java - Schaltfläche nicht hinzugefügt
package loan;
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;
import loan.pizzas.OrderHandler;
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 demo 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");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Order has been placed.");
}
});
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);
Scene scene = new Scene(root, 400, 300);
stage.setScene(scene);
stage.show();
}
/**
* Creates StringBinding between 4 provided arguments. Binding means that when value of one bound property is changed the whole binding is recomputed in computeValue method.
* The value of computeValue is bound to User.orderProperty
*/
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);
}
/*
* Fires each time bound property is modified.
*/
@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);
}
}
"Ich glaube, der Code ist richtig" Das Verhalten ist falsch, also sollte der Code falsch sein. Glauben Sie so etwas nicht .. – MikeCAT
Sollte der Button nicht irgendwo "hinzugefügt" werden, damit er angezeigt wird? – MikeCAT
Sie fügen 'btn' nicht hinzu .right? Fügen Sie es hinzu ' HBox topHBox = neue HBox (15.0, tomatoButton, pepperButton, pilzButton, pizzaType, btn); ' –