- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 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
类,它有 Sandwich
和 Bread
实例字段,作为将它们组合在一起的一种方式,而不是使用这样的列表。您还应该创建 Cheese
、Condiment
和 &c 类,并将它们作为实例变量包含在内。
其次,为什么要同时创建 frame
和扩展 JFrame
?你只需要做其中之一,而不是两者兼而有之。您可以删除 frame
变量并改用 this
。
第三,您可能想注意到 main 中的最后两个语句从未完成,因为构造函数的结尾是 System.exit(0)
。
我可以给你几千条其他建议,但如果我走那么远,我可能会开始亵渎。
关于java - 如何从多个 JOptionPane 中获取信息并将其放入摘要对话框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18032605/
我试图在 Eclipse v3.7.2 中将 loopj .jar 库添加到我的项目中 首先,我将 .jar 添加到“lib”目录中,右键单击它并选择“添加到构建路径”。它编译得很好,但在执行时出现错
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Passing two-dimensional array via pointer int table[20
我在 Grafana 中的图表每隔几秒钟就会自动更新一次。随着数据的进入,右侧的最后一个数据点会暂时下降。最终会显示正确的值,但在几次更新时该值较低。这是正常的吗?可以修复吗? 最佳答案 也许,这会有
我不明白为什么我会收到臭名昭著的“IllegalStateException”以及以下代码: private void mergeQueryStrings(String url, Map parame
您好,我正在通过 .php 文件中的 JSON 回显将测试 Android 应用程序链接到 MySQL 数据库。 我能够用整个数据填充 ArrayList,但现在我想将数据分离到变量中,但我无法真正找
我想仅将对象的数据成员的值写入文件,因此这里我不能使用序列化,因为它会写入很多内容其他我不需要的信息。这是我通过两种方式实现的。一种使用字节缓冲区,另一种则不使用它。 不使用 ByteBuffer:第
可能是个简单的问题,但我似乎找不到答案。我正在动态创建一个页面,我可以在其中共享 Twitter 链接。 var twitter = document.createElement('a'); tw
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
尝试获取我在末尾为 $_SESSION 设置的值作为查询中的 user_id,而不是 $username。我似乎无法修改查询。我确信这对于这里的一些专家来说是非常简单的。 if(isset($_POS
有没有人可以帮助我,我有 mysql 查询,我已经在 phpmyadmin 中测试了它: select items.name, items.category, items.supplier_id, i
我正在尝试 push_back()一个„ std::vector 的符号. 我一直收到错误: character too large for enclosing character literal t
我有一个存储在 char * 中的压缩图像,我想将它放回 AVPacket,以便我可以将它放入 ffmpeg 解码器。有人可以展示如何做到这一点吗?任何示例或教程将不胜感激。 提前致谢 最佳答案 我向
password = str() while password != "changeme": password = input("Password: ") print("Thou Shall
所以我有一个 Map,其中有一些值被传递到一个方法中: public String doThis(Map context){ ..... } 我正在尝试向该 map 插入附加属性 String abc
我遇到了一些我无法弄清楚的问题...我正在编写一个带有接受拖放的 JList 的 Swing Java 应用程序。我想在将文件或文件夹从我的系统拖到 Java 应用程序上时更改光标。 最佳答案 我自己
我正在尝试确定一些关于如何编写异常消息的指南。 例如,让我们假设一个假设的函数必须接收恒定数量的字节(作为 bytes 对象),我们用 [1, 2, 3]。以下是所有可能的异常(exception)情
使用 JSONObject 发送到网络服务当我们将 double(整数)放入零时,该点将被删除 代码 double d = 123.00; JSONObject json = new JSONObje
在 WPF 中,如何将 DataGrid 放在 ComboBox 中以显示多列?像下面这样的东西似乎没有做任何事情:
我正在尝试使用自定义 QStandardItem 在两个 QListViews 之间进行拖放。 除了this document,我在网上找不到我需要的信息这有点帮助,但现在我被困住了。 从一个 QLi
如何将 PDF 放入 NSData 中?我在应用程序的文档目录中以字符串形式找到了 PDF 的位置。当我尝试通过电子邮件发送时,我在电子邮件正文中看到 PDF(而不是看到附件图标。我不知道这是否正常)
我是一名优秀的程序员,十分优秀!