MatthiasHertel / pattframe

Semesterprojekt für den Kurs: Patterns and Frameworks WS 16/17
0 stars 1 forks source link

title,window,width,height to fxml #5

Closed MatthiasHertel closed 7 years ago

MatthiasHertel commented 7 years ago

this should be in fxml

title = config.getItem("application.title");
icon = new Image(config.getItem("window.icon"));
width = Double.parseDouble(config.getItem("window.width"));
height = Double.parseDouble(config.getItem("window.height"));

http://stackoverflow.com/questions/18309861/javafx-set-window-title-in-fxml-file

solution

<stage title="Kentucky Derby">
   <AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.112-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.blueberry.kentuckyderby.Controller">
      <children>
         <Region fx:id="racetrack" layoutX="0" layoutY="0" prefHeight="400.0" prefWidth="800.0" styleClass="racetrack" />
         <Button layoutX="50.0" layoutY="410.0" mnemonicParsing="false" onAction="#startGame" text="Starte Spiel" />
         <TextField fx:id="numberOfPlayersText" layoutX="225.0" layoutY="410.0" prefHeight="25.0" prefWidth="48.0" />
         <Label layoutX="141.0" layoutY="414.0" text="Anzahl Spieler" />
      </children>
   </AnchorPane>
</stage>
aspecialkey commented 7 years ago

ja, sehe ich auch so. Wenn man sich dann die derzeitige UserInterface Klasse ansieht, stellt man schnell fest, dass sie so nicht gebraucht wird. Ich fand diesen Exkurs heute über die Configurationsmöglichkeit über propertys ala ini-files (ihr wisst schon) interessant und in fielen Fällen bestimmt sehr sinnvoll. Wenn man aber mit einer Beschreibungssprache (fxml) für Oberflächen arbeitet, finde ich das Overkill und verwirrend, gerade wenn sich ein anderer darin zurecht finden sollte. Darum geht's ja in diesem Kurs auch...

oliverhuckfeldt commented 7 years ago

Wenn wir das alles in der fxml-Datei unterkriegen, dann können die Properties auch raus.

MatthiasHertel commented 7 years ago

ja, sehe ich auch so. Wenn man sich dann die derzeitige UserInterface Klasse ansieht, stellt man schnell fest, dass sie so nicht gebraucht wird. Ich fand diesen Exkurs heute über die Configurationsmöglichkeit über propertys ala ini-files (ihr wisst schon) interessant und in fielen Fällen bestimmt sehr sinnvoll. Wenn man aber mit einer Beschreibungssprache (fxml) für Oberflächen arbeitet, finde ich das Overkill und verwirrend, gerade wenn sich ein anderer darin zurecht finden sollte. Darum geht's ja in diesem Kurs auch...

ja sehe ich auch so (kiss halt - keep it short and simple)

aber man muss nicht alles vom code verstehen ... an sich ist das , ich nenns jetzt mal configuration skeleton von olli echt cool - aber natuerlich ist das auch ein wenig verwirrend (das steht da und das steht da)

mein hauptproblem ist gerade das ich den master nicht zum laufen kriege (siehe #6 ) und ich nicht wirklich ne branch vom master head machen kann

wenn wir jetzt jeder seine dev branch aufmachen ... dann sollten die alle vom HEAD aus rebasen und der HEAD sollte bei einem funktionsfaehigen stand sein

oliverhuckfeldt commented 7 years ago

Du musst den Resource Ordner als Resource markieren. Sorry ist meine schuld, die Fehlermeldung ist wirklich nicht aussagekräftig. :/

MatthiasHertel commented 7 years ago

@oliverhuckfeldt jupp danke hat geklappt ... hab den issue schon geschlossen

aspecialkey commented 7 years ago
<stage title="Kentucky Derby">
   <AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.112-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.blueberry.kentuckyderby.Controller">
      <children>
         <Region fx:id="racetrack" layoutX="0" layoutY="0" prefHeight="400.0" prefWidth="800.0" styleClass="racetrack" />
         <Button layoutX="50.0" layoutY="410.0" mnemonicParsing="false" onAction="#startGame" text="Starte Spiel" />
         <TextField fx:id="numberOfPlayersText" layoutX="225.0" layoutY="410.0" prefHeight="25.0" prefWidth="48.0" />
         <Label layoutX="141.0" layoutY="414.0" text="Anzahl Spieler" />
      </children>
   </AnchorPane>
</stage>

Kann man schon so machen, und ich hatte es ja auch befürwortet, dass man GUI-Eigenschaften dort notiert. Allerdings lässt sich dass dann mit dem Codegenerierer (scenebuilder) nicht mehr nachstellen und man müsste händisch den fxml-code manipulieren, was ja eher nich so toll ist. Heißt width und height kann man per fxml der pane zuweisen, aber fenstertitel dann in java... Jedenfalls habe ich bis jetzt keine Möglichkeit entdeckt im scenebuilder an die stage zu kommen

MatthiasHertel commented 7 years ago

das ding kann zu oder ?