Куда стоит направить особое внимание при разработке с помощью javafx
Начав изучать JavaFX после Swing столкнулся с тем что у первого есть специальное ПО в виде Scene Builder. Вместе с этим сразу возникли вопросы:
- Стоит ли учиться писать java-код для GUI лишь прописывая его или создавать его в Scene Builder?
- Если я стану создавать GUI в основном в билдере что я потеряю от этого, или наоборот приобрету?
- И вообще насколько сложнее (или нет) станет процесс если буду пытаться создавать GUI без использования билдера?
Вопросы частично друг с другом перекликаются, но все же мне так проще было бы разобраться в выборе что возник.
Ответы (1 шт):
Стоит ли учиться писать java-код для GUI лишь прописывая его или создавать его в Scene Builder?
Как вам удобнее - так и делайте. Плюсы, которые я вижу в прописывании кода:
- Если нужно будет в будущем поменять одно поле, то можно это сделать прямо в
fxml, без загрузкиscene builder'a - Вы более контролируете то, что и как у вас будет отображаться (если рассматривать тот же swing, как по мне, всякие генераторы слишком много непонятного кода генерируют)
Scene builderне все умеет делать. Например, вы можете вfxmlпрописывать константы из вашего кода, к которомуscene builderне имеет доступа ( ну или это я не научился использовать константы вscene builder'e)
Пример.
Допустим, вы хотите использовать ваши константы в Label. Константы хранятся в классе
package my.so.example;
public final class MyConstants {
public static final String RELOAD_LABEL = "Reload";
...
}
и чтобы вам это заиспользовать эти константы в fxml, нужно будет написать что-то подобное
<?import my.so.example.MyConstants?>
<GridPane fx:controller="my.so.example.Controller" ...
<Label>
<text><MyConstants fx:constant="RELOAD_LABEL"></text>
</Label>
</GridPane>
и тогда label будет иметь значение из константы ( а не какое-то захардкоженное в fxml)
Если я стану создавать GUI в основном в билдере что я потеряю от этого, или наоборот приобрету?
Смотри ответ выше.
И вообще насколько сложнее (или нет) станет процесс если буду пытаться создавать GUI без использования билдера?
Все зависит от полученной сноровки. Если будете часто менять вручную fxml - то ничего не потеряете, а возможно (со всякими автокомплитами) будет даже быстрее.