Java 我无法在文本区域中显示多个输入
我已经写了一个308行的比萨饼图形用户界面,用于几天后到期的家庭作业。我已经测试了所有的东西,代码也能正常工作 我的问题是,我要求用户在每个比萨饼上选择他们想要的配料、大小和比萨饼类型,然后用户将他们的选择添加到购物车中,并提示他们添加另一个比萨饼或结帐 如果用户签出数据,则显示为:Java 我无法在文本区域中显示多个输入,java,swing,Java,Swing,我已经写了一个308行的比萨饼图形用户界面,用于几天后到期的家庭作业。我已经测试了所有的东西,代码也能正常工作 我的问题是,我要求用户在每个比萨饼上选择他们想要的配料、大小和比萨饼类型,然后用户将他们的选择添加到购物车中,并提示他们添加另一个比萨饼或结帐 如果用户签出数据,则显示为: Your Order Number: 1 Pizza Type: Thin Crust Pizza Size: Medium Toppings: Cheese, Green Peppers Total $11.50
Your Order Number: 1
Pizza Type: Thin Crust
Pizza Size: Medium
Toppings: Cheese, Green Peppers
Total $11.50
Your Receipt:
Subtotal: $11.50
Tax: $1.06
Amount Due: $12.56
这是正确的输出。当用户选择多个比萨饼时,就会出现问题。如果用户选择两个比萨饼,则只记录最近的比萨饼。因此,打印信息会显示您的订单号2,但不包括订单1。我希望显示屏显示所有订单。我尝试了一些不同的方法,我认为我的问题必须处理ordertext,但我不是100%确定
我在下面加了一小部分,我希望有人能发现我遗漏了什么
// Creating the "Pizza Type" radiobutton grid
VBox gridForRadioButtons2 = new VBox(20);
gridForRadioButtons2.setPadding(new Insets(5, 5, 5, 5));
gridForRadioButtons2.setStyle
("2px; -fx-border-color: red");
Text PTtext = new Text("Pizza Type");
PTtext.setFill (Color.RED);
RadioButton rbTC = new RadioButton("Thin Crust");
RadioButton rbMC = new RadioButton("Medium Crust");
RadioButton rbP = new RadioButton("Pan");
gridForRadioButtons2.getChildren().addAll(PTtext, rbTC, rbMC, rbP);
grid.add(gridForRadioButtons2, 2, 1);
ToggleGroup group2 = new ToggleGroup();
rbTC.setToggleGroup(group2);
rbMC.setToggleGroup(group2);
rbP.setToggleGroup(group2);
// Create a new text area
TextArea orderscreen = new TextArea();
orderscreen.setPrefColumnCount(25);
orderscreen.setPrefRowCount(7);
grid.add(orderscreen, 0, 4);
btnAC.setOnAction((ActionEvent event) -> {
String mytoppings = "";
double mytopcost = 0.0;
// Processing button logic & checkboxes logic
if (chkTom.isSelected()) {
mytoppings = mytoppings + "Tomato "; // Topping
mytopcost += 1.50; // price
}
if (chkGP.isSelected()) {
mytoppings = mytoppings + "Green Peppers "; // Topping
mytopcost += 1.50; // pice
}
if (chkBO.isSelected()) {
mytoppings = mytoppings + "Black Olives "; // Topping
mytopcost += 1.50; // pice
}
if (chkMR.isSelected()) {
mytoppings = mytoppings + "MushRooms "; // Topping
mytopcost += 1.50; // pice
}
if (chkEC.isSelected()) {
mytoppings = mytoppings + "Extra Cheese "; // Topping
mytopcost += 1.50; // pice
}
if (chkPep.isSelected()) {
mytoppings = mytoppings + "Peppeoni "; // Topping
mytopcost += 1.50; // pice
}
if (chkSS.isSelected()) {
mytoppings = mytoppings + "Sausage "; // Topping
mytopcost += 1.50; // pice
}
if (mytoppings.length() < 2)
{mytoppings = mytoppings + "no toppings selected";}
// Pizza Types logic
String mypizzatype = "";
if (rbTC.isSelected()) {
mypizzatype = mypizzatype + "Thin Crust "; // Type
}
if (rbMC.isSelected()) {
mypizzatype = mypizzatype + "Medium Crust "; // Type
}
if (rbP.isSelected()) {
mypizzatype = mypizzatype + "Pan "; // Type
}
// Pizza Sizes logic
String mypizzasize = "";
Double smpzcost = 6.50;
Double mdpzcost = 8.50;
Double lgpzcost = 10.00;
if (rbSM.isSelected()) {
mypizzasize = mypizzasize + "Small "; // Pizza Type
order = smpzcost;
}
if (rbMD.isSelected()) {
mypizzasize = mypizzasize + "Medium "; // Pizza Type
order = mdpzcost;
}
if (rbLG.isSelected()) {
mypizzasize = mypizzasize + "Large "; // Pizza Type
order = lgpzcost;
}
// Storing the order text
DecimalFormat df = new DecimalFormat("0.00");
ordertext = "Your Order Number: "
+ numberPizzas
+ "\nPizza Type: " + mypizzatype
+ "\nPizza Size: " + mypizzasize
+ "\nToppings: " + mytoppings
+ "\nTotal: $" + df.format(order + mytopcost)
+ "\n";
total = (order + mytopcost);
numberPizzas++;
pizzas = pizzas + total;
// Display order text
orderscreen.setText(ordertext);
});
btnAddPizza.setOnAction(e -> {
chkTom.setSelected(false);
chkGP.setSelected(false);
chkBO.setSelected(false);
chkMR.setSelected(false);
chkEC.setSelected(false);
chkPep.setSelected(false);
chkSS.setSelected(false);
chkMR.setSelected(false);
rbSM.setSelected(false);
rbMD.setSelected(false);
rbLG.setSelected(false);
rbTC.setSelected(false);
rbMC.setSelected(false);
rbP.setSelected(false);
});
btnChkOut.setOnAction(e -> {
// Storing the order text
DecimalFormat df = new DecimalFormat("0.00");
tax = pizzas*.0925;
tax = pizzas *.0925;
subtotal = pizzas + tax;
ordertext = ("Your Receipt: "
+ "\nSubtotal: " + df.format(pizzas)
+ "\nSales Tax: " + df.format(tax)
+ "\nAmount Due: " + df.format(subtotal)
+ "\n");
// Display order text
orderscreen.setText(ordertext);
});
primaryStage.setTitle("Justin's Pizza Palace Shop");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
你如何储存你的比萨饼?我看到了一个比萨饼的逻辑,倍数从何而来?在顶部的双层比萨饼;啊!!!我刚想出来