2017-05-02 2 views
0

pour un projet personnel à moi pour ma classe de programmation et d'être libéré plus tard, je suis arrivé à un problème que je ne m'attendais pas à rencontrer. Je voulais afficher une forme 3D dans un volet quand un élément de menu-bouton est cliqué, je suis allé chercher sur Internet en le cherchant 50-100 façons différentes (ou une bonne estimation approximative) et je n'ai rien trouvé dessus. J'ai été dérouté sur la façon d'afficher des formes 3D quand un élément de menu est cliquée, voici mon code source (FXML):comment puis-je afficher une forme 3D sur un clic de bouton dans javafx

<MenuButton layoutX="14.0" layoutY="92.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="72.0" text="shapes"> 
    <items> 
     <MenuItem mnemonicParsing="false" onAction="#itemcircle" text="circle" /> 
     <MenuItem mnemonicParsing="false" onAction="#itemsquare" text="square/surfice" /> 
     <MenuItem mnemonicParsing="false" onAction="#itemcube" text="cube" /> 
     <MenuItem mnemonicParsing="false" onAction="#itemsphere" text="sphere" /> 
     <MenuItem mnemonicParsing="false" onAction="#itemcyllinder" text="cyllinder" /> 
    </items> 
    </MenuButton> 

mon autre exemple de code source (JavaFX):

public void itemcyllinder(ActionEvent cyllinderspawn) 
{ 
    Cylinder cylinder = new Cylinder(40, 120); 
    cylinder.setTranslateX(500); 
    cylinder.setTranslateY(-25); 
    cylinder.setTranslateZ(600); 
} 

Alors, comment puis-je afficher des formes/objets 3D en utilisant javafx/fxml?

EDIT: j'oublié de mentionner que je veux qu'il apparaît dans une fenêtre sur ma scène

+0

Avez-vous essayé d'ajouter un gestionnaire d'événement click sur le bouton et de changer la visibilité du 'Cylinder' sur click? – Oswald

+0

pas mais essayez mal. – chucklesdeclown

+0

Peut-être regarder le [visualisateur de modèle] (http://stackoverflow.com/questions/19459012/how-to-create-custom-3d-model-in-javafx-8) défini dans la réponse à "Comment créer personnalisé Modèle 3D en JavaFX 8? " Ce n'est pas exactement ce que vous demandez, mais pourrait donner quelques idées sur la façon d'atteindre ce que vous voulez. – jewelsea

Répondre

0

j'ai trouvé la réponse c'est tout ce que je devais faire avec le cylindre:

public void itemcyllinder(ActionEvent cyllinderspawn) 
{ 
    Cylinder cylinder = new Cylinder(40, 120); 
    cylinder.setTranslateX(368.0); 
    cylinder.setTranslateY(311.0); 
    whereitgoes.getChildren().add(cylinder); 
} 

i appelé mon volet whereitgoes puis je viens d'utiliser les getChildren d'avoir l'affichage du cylindre dans le volet i appelé où il va avec un bouton de menu click (désolé je ne peux pas donner un exemple d'image)

0

Je ne l'ai pas essayé, mais je voudrais essayer de créer une scène 3D sur un SubScene et mis que le graphic property de l'élément de menu. Je pense que vous vouliez définir la scène 3D comme un graphique d'un élément de menu. Quoi qu'il en soit, pour mélanger 2D et 3D, vous devez créer des SubScenes.

+0

pourriez-vous élaborer sur ce plus peut-être un exemple de code? – chucklesdeclown

+0

merci pour votre réponse, mais je l'ai trouvé – chucklesdeclown