gpt4 book ai didi

java - 如何从多个 JOptionPane 中获取信息并将其放入摘要对话框中

转载 作者:行者123 更新时间:2023-11-29 03:31:27 29 4
gpt4 key购买 nike

我正在为 Subway 订购程序编写代码。我已经布置了 GUI,但不确定我应该如何获取所有按钮并将其设置到订单摘要中。摘要需要显示姓名、日期、时间、子成分、小计、可能的第二订单成分、第二小计和总订单总计。我了解 GUI,但是当涉及到数组和列表时,我不太确定,我需要包含一个数组列表来存储订单。

我是否需要像为三明治和面包那样为蔬菜、奶酪和调味品创建数组类?

任何建议都会很棒。谢谢!

import java.awt.GridLayout;
import java.util.ArrayList;
import java.util.List;
import javax.swing.*;


public class SubwayForm extends JFrame
{
public static List<Sandwich> orderedSandwiches;
private List<Sandwich> sandwiches;
public static List<Bread> breads;
public static List<Bread> orderedBreads;


public SubwayForm() {

setTitle("Subway");
setSize(250,250);
setLayout(null);
setLocationRelativeTo(null);
CreateSandwiches();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);

//FRAME

JFrame frame = new JFrame();

//NAME

String name = (String) JOptionPane.showInputDialog(frame,
"Enter your name", "SUBWAY", JOptionPane.QUESTION_MESSAGE,
null, null, null);

//SIZE

JPanel size = new JPanel(new GridLayout(2,1));
JRadioButton jrbInch = new JRadioButton("6 inch");
JRadioButton jrbFoot = new JRadioButton("12 inch");
size.add(jrbInch);
size.add(jrbFoot);

JOptionPane.showOptionDialog(frame, size, "Sub Size", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
null, null);

//BREAD

JPanel bread = new JPanel(new GridLayout(6,1));
JRadioButton jrbWheat = new JRadioButton("9-Grain Wheat");
JRadioButton jrbHoney = new JRadioButton("Honey Oat");
JRadioButton jrbItalian = new JRadioButton("Italian");
JRadioButton jrbHerbs = new JRadioButton("Italian Herbs & Cheese");
JRadioButton jrbMontChed = new JRadioButton("Monterey Cheddar");
JRadioButton jrbFlat = new JRadioButton("Flatbread");
bread.add(jrbWheat);
bread.add(jrbHoney);
bread.add(jrbItalian);
bread.add(jrbHerbs);
bread.add(jrbMontChed);
bread.add(jrbFlat);

JOptionPane.showOptionDialog(frame, bread, "Choose your bread", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
null, null);


//TYPE OF SUB

JPanel type1 = new JPanel(new GridLayout(6,1));
JRadioButton jrbChix = new JRadioButton("Oven Roasted Chicken - $3.00");
JRadioButton jrbMeatball = new JRadioButton("Meatball Marinara - $3.50");
JRadioButton jrbHam = new JRadioButton("Blackforest Ham - $2.25");
JRadioButton jrbBLT = new JRadioButton("BLT - $4.00");
JRadioButton jrbCold = new JRadioButton("Cold Cut - $3.00");
JRadioButton jrbVeggie = new JRadioButton("Veggie Delight - $4.00");
type1.add(jrbChix);
type1.add(jrbMeatball);
type1.add(jrbHam);
type1.add(jrbBLT);
type1.add(jrbCold);
type1.add(jrbVeggie);

JOptionPane.showOptionDialog(frame, type1, "Choose your Sub Type", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
null, null);

//CHEESE

JPanel cheese = new JPanel(new GridLayout(6,1));
JRadioButton jrbSwiss = new JRadioButton("Swiss");
JRadioButton jrbProv = new JRadioButton("Provologne");
JRadioButton jrbCheddar = new JRadioButton("Cheddar");
JRadioButton jrbPepper = new JRadioButton("Pepperjack");
JCheckBox jcbExcheese = new JCheckBox("Extra Cheese - $1.00");
cheese.add(jrbSwiss);
cheese.add(jrbProv);
cheese.add(jrbCheddar);
cheese.add(jrbPepper);
cheese.add(jcbExcheese);

JOptionPane.showOptionDialog(frame, cheese, "Choose your cheese", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);

//TOASTED

JPanel toasted = new JPanel(new GridLayout(2,1));
JRadioButton jrbToasted = new JRadioButton("Yes");
JRadioButton jrbNottoasted = new JRadioButton("No");
toasted.add(jrbToasted);
toasted.add(jrbNottoasted);

JOptionPane.showOptionDialog(frame, toasted, "Would you like it toasted?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
null, null);

//VEGGIES

JPanel veg = new JPanel(new GridLayout(8,1));

JCheckBox jcbLettuce = new JCheckBox("Lettuce");
JCheckBox jcbSpinach = new JCheckBox("Spinach");
JCheckBox jcbOnion = new JCheckBox("Onion");
JCheckBox jcbPickles = new JCheckBox("Pickles");
JCheckBox jcbTomatoes = new JCheckBox("Tomatoes");
JCheckBox jcbPeppers = new JCheckBox("Peppers");
veg.add(jcbLettuce);
veg.add(jcbSpinach);
veg.add(jcbPickles);
veg.add(jcbOnion);
veg.add(jcbTomatoes);
veg.add(jcbPeppers);

JOptionPane.showOptionDialog(frame, veg, "Choose your veggies", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);

//CONDIMENTS

JPanel condiments = new JPanel(new GridLayout(8,1));

JCheckBox jcbMayo = new JCheckBox("Mayo");
JCheckBox jcbMustard = new JCheckBox("Mustard");
JCheckBox jcbDressing = new JCheckBox("Italian Dressing");
condiments.add(jcbMayo);
condiments.add(jcbMustard);
condiments.add(jcbDressing);

JOptionPane.showOptionDialog(frame, condiments, "Choose your condiments", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,null, null, null);

//DO ANOTHER?

JPanel another = new JPanel(new GridLayout(2,1));
JRadioButton jrbAnother = new JRadioButton("Yes");
JRadioButton jrbNotanother = new JRadioButton("No");
another.add(jrbAnother);
another.add(jrbNotanother);

JOptionPane.showOptionDialog(frame, another, "Do you want another?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
null, null);

//SUMMARY

JPanel summary = new JPanel();
JOptionPane.showMessageDialog(frame, " Customer: ",null, JOptionPane.PLAIN_MESSAGE);
System.exit(0);


}//end of subwayform

private void CreateBread()
{
breads = new ArrayList<Bread>();
Bread orc = new Bread("Italian");
breads.add(orc);
breads.add(new Bread("Wheat"));
breads.add(new Bread("Honey Oat"));
breads.add(new Bread("Herbs and Cheese"));
breads.add(new Bread("Cheddar"));
breads.add(new Bread("Flatbread"));
}//end of bread

private void CreateSandwiches()
{
sandwiches = new ArrayList<Sandwich>();
Sandwich orc = new Sandwich("Oven Roasted Chicken", 3.00);
sandwiches.add(orc);
sandwiches.add(new Sandwich("Meatball Marinara", 3.50));
sandwiches.add(new Sandwich("Blackforest Ham", 2.25));
sandwiches.add(new Sandwich("BLT", 4.00));
sandwiches.add(new Sandwich("Cold Cut Combo", 3.00));
sandwiches.add(new Sandwich("Veggie Delite", 4.00));
}//end of sandwiches


public static void main(String[] args)
{
new SubwayForm();

orderedSandwiches = new ArrayList<Sandwich>();
orderedBreads = new ArrayList<Bread>();

}


}//end of subwayform jframe

class Bread
{
private String name;
private String bread;

public Bread(String name)
{
this.name = name;
}

public void setBread(String s)
{
this.bread = s;
}

public String getBread()
{
return bread;
}

}// end of bread


class Sandwich {

private String name;
private double cost;


public Sandwich(String name, double price)
{
this.name = name;
this.cost = price;
}

public String getName()
{
return name;
}

public double getCost()
{
return cost;
}

}//end of sandwich

最佳答案

首先,您应该有一个 Order 类,它有 SandwichBread 实例字段,作为将它们组合在一起的一种方式,而不是使用这样的列表。您还应该创建 CheeseCondiment 和 &c 类,并将它们作为实例变量包含在内。

其次,为什么要同时创建 frame 和扩展 JFrame?你只需要做其中之一,而不是两者兼而有之。您可以删除 frame 变量并改用 this

第三,您可能想注意到 main 中的最后两个语句从未完成,因为构造函数的结尾是 System.exit(0)

我可以给你几千条其他建议,但如果我走那么远,我可能会开始亵渎。

关于java - 如何从多个 JOptionPane 中获取信息并将其放入摘要对话框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18032605/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com