CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

explication fxml

TechnoForce3
TechnoForce3
Niveau 39
04 mars 2018 à 16:45:56

Dans le cadre d'un de mes cours, on nous fait passer un programme qui a une IHM en JavaFX en une IHM utilisant le FXML pour décrire les éléments. Seulement, je n'y comprends rien du tout à ce truc, j'arrive à rien faire.
L'interface est découpé en plusieurs parties (un titre, un conteneur central contenant deux grilles qui affichent des images et en bas un scrollpane avec une zone de texte). J'essaie de modifier la zone du bas qui est une classe contenant deux attributs : un ScrollPane et un TextArea qui est construit avec un message départ et ensuite le textArea est ajouté au ScrollPane. Ensuite cette classe a une fonction append pour ajouter du texte à la zone de texte. J'ai essayé plein de trucs pour le faire fonctionner, lu le peu de cours que j'ai réussit à trouver là dessus. Je dois être à plus de 6h passé là dessus avec aucune avancée autre que de la frustration. Si quelqu'un pourrait m'expliquer comment on peut faire ça en fxml, ça m'aiderait beaucoup car là j'en suis rendu à abandonner.
J'ai même dernièrement essayé de modifier la classe fourni au départ en me disant que c'était peut-être l'architecture de départ du code fourni qui est pas fait pour le fxml mais ça n'a rien changé.
Voilà mon code à l'heure actuel.

package battleship2D.ui.controller;

import java.io.IOException;

import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;

/**
 * Classe dedicated to games text notifications
 * @author xaviator
 */
public class Messages extends ScrollPane {
    /*=========================================================================*/
    /* Members                                                                 */       
   /*=========================================================================*/

    /** ScrollPane container */
//    @FXML
//   private ScrollPane scrollPane;
    
    /** Notification area */
    @FXML
    private TextArea textArea;
    

    /*=========================================================================*/
    /* Public methods                                                          */       
    /*=========================================================================*/

    /**
     * Constructor
     * @param firstMessage - default message
     */
    public Messages(String firstMessage) {
    	try {
    	    FXMLLoader fxmlLoader = new FXMLLoader(Messages.class.getResource("../fxml/Messages.fxml"));
    	    fxmlLoader.setRoot(this);
    	    fxmlLoader.load();
    	}
    	catch(IOException ioe) {
    	    System.err.println("GameBoard constructor error");
    	    ioe.printStackTrace();
    	}

  //      this.scrollPane = new ScrollPane();
        this.textArea = new TextArea(firstMessage);
       /* this.textArea.setEditable(false);        
        this.setContent(this.textArea);
        this.setPrefHeight(80);
        this.setFitToHeight(true);
        this.setFitToWidth(true);*/
        
//s       init();
    }
    

    /*
     * Getters / setters
     */

    public void append(String string) {
        this.textArea.appendText(string);
    }
    
    public TextArea getTextArea() {
        return this.textArea;
    }

    public void setTextArea(TextArea newTextArea) {
        this.textArea = newTextArea;
    }
    
/*    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public void setScrollPane(ScrollPane newScrollPane) {
        this.scrollPane = newScrollPane;
    }*/

    /*=========================================================================*/
    /* Private methods                                                         */       
    /*=========================================================================*/

    /**
     * Initialize private members
     */
   /* private void init() {
        this.textArea.setEditable(false);        
        this.scrollPane.setContent(this.textArea);
        this.scrollPane.setPrefHeight(80);
        this.scrollPane.setFitToHeight(true);
        this.scrollPane.setFitToWidth(true);
    }    */
}
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.ScrollPane ?>
<?import javafx.scene.control.TextArea ?>

<fx:root type="battleship2D.ui.controller.Messages"
         xmlns="http://javafx.com/javafx/8"     
         xmlns:fx="http://javafx.com/fxml/1">
	
    	<Content>
    		<TextArea fx:id="textArea" editable="false">
    		</TextArea>
    	</Content>
        <PrefHeight 80 />
        <FitToHeight true />
        <FitToWidth true />	
	
</fx:root>
Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment