2017-09-19 4 views
2

저는 장면 작성기를 사용하여 JavaFX를 기반으로 GUI로 Java에서 게임 예측 시스템을 만들려고합니다. 여기에는 참여하는 운동 선수가 들어있는 ArrayList가있는 게임 개체가 포함 된 HashMap이 들어 있습니다. 둘 다 런타임에 사용자가 결정합니다. 특정 유형의 운동 선수 만 게임의 특정 유형에 참여할 자격이 있습니다. 예를 들어, 수영가는 수영 게임에만 참여할 수 있습니다. 자격을 갖춘 운동 선수를 게임 개체 및 운동 선수 개체와 일치 시켜서받을 수 있지만 런타임에 자격을 갖춘 운동 선수의 확인란을 어떻게 만듭니 까? (JavaFX에서 동적으로 확인란을 추가했습니다.

+0

loopto를 사용하여 장면을 수정하면 'ListView', 'TableView'또는 이와 비슷한 것 ... – fabian

답변

0

다음 접근 방식을 사용하면 런타임에 확인란을 추가 또는 제거 할 수 있습니다.

package com.grsdev.stackoverflow.question170919.pack02; 


import javafx.application.*; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.CheckBox; 
import javafx.scene.layout.StackPane; 
import javafx.scene.layout.VBox; 
import javafx.stage.Stage; 
/** 
* @author gaurav salvi 
* 
*/ 
public class JavaFxCheckBoxDemo extends Application{ 

    private static VBox root; 

    private static CheckBox box=new CheckBox("Apple"); 

    public static void main(String[] args) { 
     launch(args); 
    } 

    @Override 
    public void start(Stage stage) throws Exception { 

     root=new VBox(); 

     Button button=new Button("   toggle   "); 

     button.setOnAction(JavaFxCheckBoxDemo::buttonClicked); 

     root.getChildren().add(button); 
     root.getChildren().add(box); 

     Scene value=new Scene(root,200,200); 

     stage.setScene(value); 

     stage.show(); 

    } 

    private static void buttonClicked(ActionEvent event){ 

     if(root.getChildren().contains(box)){ 
      root.getChildren().remove(box); 
     }else{ 
      root.getChildren().add(box); 
     } 
    } 

} 
0

나는 주어진 문제에 대한 한 가지 가능한 해결 방법은 여러 정적 개체를 추가 할 것이다. 동적 장면 Builder에서 객체를 생성하고 불가능하지는 않지만 것 매우 어려운 자신의 ID의 기준으로 컨트롤러를 연결, 생각하고 자신의 가시성을 설정 선수가 어떻게 만들어지고 Game 객체의 ArrayList에 추가되는지에 따라 주어진 확인란에 대한 가시성이 변경되었습니다.