Java 工厂类和GUI
有人能帮忙吗? 我在Java 工厂类和GUI,java,javafx,Java,Javafx,有人能帮忙吗? 我在javaFX中创建了一个比萨饼GUI,用户可以在其中选择配料、大小和外壳类型 我还创建了一个工厂类,这样就可以制作比萨饼了。 然后,用户必须使用复选框和单选按钮选择浇头、大小和外壳,以进行订购。但是有人告诉我,复选框和单选按钮必须从工厂类获取数据才能制作比萨饼。我如何使用factory类来实现这一点 ps:它正在获取数据,但不是来自工厂类 工厂级 public class PizzaFactory { static ArrayList<String>
javaFX
中创建了一个比萨饼GUI,用户可以在其中选择配料、大小和外壳类型
我还创建了一个工厂类,这样就可以制作比萨饼了。
然后,用户必须使用复选框
和单选按钮
选择浇头、大小和外壳,以进行订购。但是有人告诉我,复选框
和单选按钮
必须从工厂类获取数据才能制作比萨饼。我如何使用factory类来实现这一点
ps:它正在获取数据,但不是来自工厂类
工厂级
public class PizzaFactory {
static ArrayList<String> pza_tpe = new ArrayList<String>();
static ArrayList<String> pza_sze = new ArrayList<String>();
public Pizza crust(String newPizza) {
//pizza type
pza_tpe.add("Thin Crust");
pza_tpe.add("Medium Crust");
pza_tpe.add("Crust Lover");
for (String str : pza_tpe) {
if(newPizza== null) {
return null;
}
if(str.equals("Small")) {
return new Size();
}
else if(str.equals("Medium")) {
return new Size();
}
else if(str.equals("Large")) {
return new Size();
}
}
return null;
}
public class PizzaGUI extends Application {
static ArrayList<CheckBox> pza_tpg = new ArrayList<CheckBox>();
static List<RadioButton> rb= new ArrayList<RadioButton>();
static CheckBox cb1 = new CheckBox("Tomato");
static CheckBox cb2 = new CheckBox("Green Pepper");
static CheckBox cb3 = new CheckBox("Black Olives");
static CheckBox cb4 = new CheckBox("Mushrooms");
static CheckBox cb5 = new CheckBox("Extra Cheese");
static CheckBox cb6 = new CheckBox("Pepperoni");
static CheckBox cb7 = new CheckBox("Sausage");
static ToggleGroup group2 = new ToggleGroup();
static RadioButton rb1 = new RadioButton("Small: $25.00");
static RadioButton rb2 = new RadioButton("Medium: $50.00");
static RadioButton rb3 = new RadioButton("Large: $75.00");
static RadioButton rb4 = new RadioButton("Family: $130.00");
static TextArea ta= new TextArea();
static Button bt1= new Button("Place Order");
//pizza factory class object
static PizzaFactory pf= new PizzaFactory();
@Override
public void start(Stage Stage) {
Group root = new Group();
//add pizza topping to array
pza_tpg.add(cb1);
pza_tpg.add(cb2);
pza_tpg.add(cb3);
pza_tpg.add(cb4);
pza_tpg.add(cb5);
pza_tpg.add(cb6);
pza_tpg.add(cb7);
cb1.setLayoutX(70);
cb1.setLayoutY(165);
cb2.setLayoutX(70);
cb2.setLayoutY(185);
cb3.setLayoutX(70);
cb3.setLayoutY(205);
cb4.setLayoutX(70);
cb4.setLayoutY(225);
cb5.setLayoutX(70);
cb5.setLayoutY(245);
cb6.setLayoutX(70);
cb6.setLayoutY(265);
cb7.setLayoutX(70);
cb7.setLayoutY(286);
root.getChildren().addAll(cb1,cb2,cb3,cb4,cb5,cb6,cb7);
cb1.requestFocus();
cb2.requestFocus();
cb3.requestFocus();
cb4.requestFocus();
cb5.requestFocus();
cb6.requestFocus();
cb7.requestFocus();
//add pizza size to array
rb.add(rb1);
rb.add(rb2);
rb.add(rb3);
rb.add(rb4);
rb1.setToggleGroup(group2);
rb2.setToggleGroup(group2);
rb3.setToggleGroup(group2);
rb4.setToggleGroup(group2);
rb1.setLayoutX(240);
rb1.setLayoutY(165);
rb2.setLayoutX(240);
rb2.setLayoutY(185);
rb3.setLayoutX(240);
rb3.setLayoutY(205);
rb4.setLayoutX(240);
rb4.setLayoutY(225);
root.getChildren().addAll(rb1,rb2,rb3,rb4);
Label type= new Label("Pizza Type");
type.setStyle("-fx-font-weight: bold");
type.setLayoutX(400);
type.setLayoutY(140);
root.getChildren().add(type);
ToggleGroup group3 = new ToggleGroup();
RadioButton rb5 = new RadioButton("Thin Crust");
RadioButton rb6 = new RadioButton("Medium Crust");
RadioButton rb7 = new RadioButton("Crust Lover");
rb5.setToggleGroup(group3);
rb6.setToggleGroup(group3);
rb7.setToggleGroup(group3);
rb5.setLayoutX(405);
rb5.setLayoutY(165);
rb6.setLayoutX(405);
rb6.setLayoutY(185);
rb7.setLayoutX(405);
rb7.setLayoutY(205);
root.getChildren().addAll(rb5,rb6,rb7);
CheckBox mc = new CheckBox("Members Card");
mc.setLayoutX(240);
mc.setLayoutY(255);
root.getChildren().add(mc);
Menu m= new Menu("File");
// create menuitems
MenuItem m1 = new MenuItem("Clear Form");
MenuItem m2 = new MenuItem("Exit");
//cleat input set on action
m1.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
clear();
}
});
//exit application
m2.setOnAction((ActionEvent t) -> {
System.exit(0);
});
//add menu items
m.getItems().add(m1);
m.getItems().add(m2);
// create a menubar
MenuBar mb = new MenuBar();
mb.getMenus().add(m);
VBox vb = new VBox(mb);
root.getChildren().add(mb);
//set Stage and scene
Scene s = new Scene(root, 570, 650);
Stage.setTitle("Sample Application");
Stage.setScene(s);
Stage.show();
}
//select toppings
private void handleToppingPrice(ActionEvent event ) {
if(event.getSource() == bt1)
ta.appendText("\\nOrder Button Pushed");
String outputText = "";
for(CheckBox element : pza_tpg) {
if(element.isSelected()) {
outputText += "\nTopping: "+element.getText()+"\nCost: "+Toppings.getCost();
ta.setText(outputText);
}}
}//end of method
private void handlePizzaSize(ActionEvent Event) {
for(RadioButton i: rb) {
Pizza thePizza= null;
String oText="";
if(i.isSelected()) {
thePizza=PizzaFactory.pza_sze(null, i);
oText += "\nSize"+i.getText();
ta.appendText(oText);
}
}
}
public static void main(String[] args) {
launch(args);
}
}
公共类比萨饼工厂{
静态ArrayList pza_tpe=新ArrayList();
静态ArrayList pza_sze=新ArrayList();
公共比萨饼皮(新比萨饼){
//比萨饼类型
添加(“薄壳”);
添加(“中结壳”);
添加(“结壳爱好者”);
用于(字符串str:pza_tpe){
if(newPizza==null){
返回null;
}
如果(str.equals(“Small”)){
返回新的大小();
}
否则,如果(str.equals(“Medium”)){
返回新的大小();
}
else if(str.equals(“Large”)){
返回新的大小();
}
}
返回null;
}
公共类PizzaGUI扩展应用程序{
静态ArrayList pza_tpg=新ArrayList();
静态列表rb=newarraylist();
静态复选框cb1=新复选框(“番茄”);
静态复选框cb2=新复选框(“青椒”);
静态复选框cb3=新复选框(“黑橄榄”);
静态复选框cb4=新复选框(“蘑菇”);
静态复选框cb5=新复选框(“额外奶酪”);
静态复选框cb6=新复选框(“辣香肠”);
静态复选框cb7=新复选框(“香肠”);
静态ToggleGroup group2=新的ToggleGroup();
静态RadioButton rb1=新RadioButton(“小:$25.00”);
静态RadioButton rb2=新RadioButton(“中等:$50.00”);
静态RadioButton rb3=新RadioButton(“大:$75.00”);
静态RadioButton rb4=新RadioButton(“系列:$130.00”);
静态TextArea ta=新TextArea();
静态按钮bt1=新按钮(“下单”);
//pizza工厂类对象
静态PizzaFactory pf=新PizzaFactory();
@凌驾
公众假期开始(阶段){
组根=新组();
//将比萨配料添加到阵列中
pza_tpg.add(cb1);
pza_tpg.add(cb2);
pza_tpg.add(cb3);
pza_tpg.add(cb4);
pza_tpg.add(cb5);
pza_tpg.add(cb6);
pza_tpg.add(cb7);
cb1.setLayoutX(70);
cb1.setLayoutY(165);
cb2.setLayoutX(70);
cb2.setLayoutY(185);
cb3.setLayoutX(70);
cb3.setLayoutY(205);
cb4.setLayoutX(70);
cb4.setLayoutY(225);
cb5.setLayoutX(70);
cb5.setLayoutY(245);
cb6.setLayoutX(70);
cb6.setLayoutY(265);
cb7.setLayoutX(70);
cb7.setLayoutY(286);
root.getChildren().addAll(cb1、cb2、cb3、cb4、cb5、cb6、cb7);
cb1.requestFocus();
cb2.requestFocus();
cb3.requestFocus();
cb4.requestFocus();
cb5.requestFocus();
cb6.requestFocus();
cb7.requestFocus();
//将比萨饼大小添加到阵列中
rb.add(rb1);
rb.add(rb2);
rb.add(rb3);
rb.add(rb4);
rb1.设置切换组(第2组);
rb2.setToggleGroup(第2组);
rb3.setToggleGroup(第2组);
rb4.setToggleGroup(第2组);
rb1.setLayoutX(240);
rb1.setLayoutY(165);
rb2.setLayoutX(240);
rb2.setLayoutY(185);
rb3.setLayoutX(240);
rb3.setLayoutY(205);
rb4.setLayoutX(240);
rb4.设置布局(225);
root.getChildren().addAll(rb1、rb2、rb3、rb4);
标签类型=新标签(“比萨饼类型”);
type.setStyle(“-fx字体大小:粗体”);
类型:setLayoutX(400);
类型.setLayoutY(140);
root.getChildren().add(类型);
ToggleGroup group3=新的ToggleGroup();
RadioButton rb5=新的RadioButton(“薄壳”);
RadioButton rb6=新的RadioButton(“中地壳”);
RadioButton rb7=新的RadioButton(“外壳情人”);
rb5.设置切换组(第3组);
rb6.setToggleGroup(第3组);
rb7.设置切换组(第3组);
rb5.setLayoutX(405);
rb5.setLayoutY(165);
rb6.setLayoutX(405);
rb6.setLayoutY(185);
rb7.setLayoutX(405);
rb7.setLayoutY(205);
root.getChildren().addAll(rb5、rb6、rb7);
复选框mc=新复选框(“会员卡”);
mc.setLayoutX(240);
mc.setLayoutY(255);
root.getChildren().add(mc);
菜单m=新菜单(“文件”);
//创建菜单项
MenuItem m1=新MenuItem(“清除形式”);
MenuItem m2=新MenuItem(“退出”);
//夹板输入设置动作
m1.setOnAction(新的EventHandler(){
@重写公共无效句柄(ActionEvent e){
清除();
}
});
//退出应用程序
m2.设置动作((动作事件t)->{
系统出口(0);
});
//添加菜单项
m、 getItems().add(m1);
m、 getItems().add(m2);
//创建菜单栏
菜单栏mb=新菜单栏();
mb.getMenus().add(m);
VBox vb=新的VBox(mb);
root.getChildren().add(mb);
//布景
场景s=新场景(根,570650);
Stage.setTitle(“示例应用程序”);
第二阶段(s);
Stage.show();
}
//选择浇头