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();
}
//选择浇头