StartViewController.java
//このクラスでProducutInfoクラスのオブジェクトを作成し初期値を入力したい package application; import java.io.IOException; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class StartViewController { @FXML private Button button_Start; @FXML private Button button_End; @FXML private Label label_title; //商品情報の初期化 String name[] = {"水","お茶","コーヒー","オレンジジュース","ヤクルト","コーラ"}; int price[] = {90,100,110,120,130,80,150} ; int temp[] = {1,2,2,1,2,2}; int shape[] = {1,2,1,1,2,2}; int stock[] = {2,2,2,2,2,2}; @FXML void onStartClicked(ActionEvent event) { try { showSecondWindow(); } catch (Exception ex) { System.out.println(ex.getMessage()); } } void showSecondWindow() throws IOException { /*ProductInfo p = new ProductInfo(); p.Product1(name[0],price[0],temp[0],shape[0],stock[0]); p.Product2(name[1],price[1],temp[1],shape[1],stock[1]); p.Product3(name[2],price[2],temp[2],shape[2],stock[2]); p.Product4(name[3],price[3],temp[3],shape[3],stock[3]); p.Product5(name[4],price[4],temp[4],shape[4],stock[4]); p.Product6(name[5],price[5],temp[5],shape[5],stock[5]); */ //for(int i = 0;i < product.length;i++) { // product[i].Product(name[i], price[i], temp[i], shape[i], stock[i]); //} FXMLLoader loader = new FXMLLoader(getClass().getResource("ModeView.fxml")); BorderPane root = (BorderPane) loader.load(); Scene scene = new Scene(root); Stage stage = new Stage(); stage.setScene(scene); stage.showAndWait(); } @FXML void onEndClicked(ActionEvent event) { } } ``` ProductInfo.java ``` //商品情報を格納するクラス package application; public class ProductInfo { static String name; //商品名 static int price; //価格 static int temp; //温度 static int shape; //形状 static int stock; //在庫数 static String strTemp; static String strShape; public void Product(String name2, int price2, int temp2, int shape2, int stock2) { name = name2; price = price2; temp = temp2; shape = shape2; stock = stock2; if (shape == 1) strShape = "ペットボトル"; else strShape = "缶"; if (temp == 1) strTemp = "温"; else strTemp = "冷"; } public String outName() { return name; } public int outPrice() { return price; } public String outTemp() { return strTemp; } public String outShape() { return strShape; } public int outStock() { return stock; } } ```BuyViewController.java ``` //この画面に商品情報を表示したい package application; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.stage.Window; public class BuyViewController { @FXML private Label lavel_Title; @FXML private Label lavel_Sumitted; @FXML private Button button_Back; @FXML private Label shohin1; @FXML private Label shohin2; @FXML private Label shohin3; @FXML private Label shohin4; @FXML private Label shohin5; @FXML private Label shohin6; void output() { } @FXML void onBackClicked(ActionEvent event) { Scene scene = ((Node) event.getSource()).getScene(); Window window = scene.getWindow(); window.hide(); } } ```### 前提・実現したいこと JavaFxを用いて自動販売機を模したシステムを大学の課題で作成しています。 商品情報をクラス間(ウインドウ間)で値を保持して表示したり、在庫数の変更などを行いたいです。 現在StartViewControllerクラスで商品情報(商品名や価格)をまとめるProductInfoクラスのオブジェクトを作成し初期値を代入しました。これを今度はBuyViewControllerクラスで表示したいです。
回答4件
あなたの回答
tips
プレビュー