Кошак, смотри. Вот представим, у нас есть класс, и называется он Window. Так вот.
Смотри, этот класс должен иметь такой метод, как addElement.
Этот метод принимает в себя некий инстанс от класса Element, вроде в иннере даже был.
Ну т.е. что-то ? super Element
Под каждый элемент нужно по отдельному спец классу:
текст, имэдж, кнопка, фрейм и тд
Этот метод должен добавлять элементы в окно, и возвращать себя же, чтобы можно было цепочку вызовов осуществить.
Важное уточнение, любые числа вроде scale?, x, y, width?, height? и тд должны быть float.
Насчёт font? для текста, ты можешь сделать либо мини класс, как конструктор нужного объекта в представлении джавы, или просто через параметры. И да, учти то, что width и height если не указаны, у элементов всегда рассчитываются сами, это сделай.
Дальше, получение элемента:
твойЮай.getElement<сюда можно дженерик для конкретного типа, чтобы правильно ключи>("название").ключ или тоже самое, но вместо .ключ сделать .getBinding(String name) похожее было в жс иннера где-то видел
твойЮай.getElements() для получения всех элементов
метод getElement может возвращать что-то по типу ...методы и метод setBinding(String name, T value)
Насчёт drawing:
какой-то обобщённый класс, например DrawingElement и так же наследование
твойЮай.setDrawing(где массив, где инстансы DrawingElement)
getDrawing если пригодится, сам придумаешь.
Поскольку сделать не жсный setContent не получится, то попробуй обновлять окно после setBinding.
Насчёт расположения:
тут тоже все сделай float
твойЮай.setLocation(какой-нибудь new WindowLocation().setWidth(float num).setHeight(float num) и тд можешь придумать, или сделать чтобы этот метод принимал все параметры через запятую, но учти, что много параметров просто обязаны быть опциональны)
Насчёт таких деталей как layout:
Это уже из наработок Ильи было, просто убедись, что это работает стабильно.
Все методы вроде forceRefresh, updateScrollDimensions, updateWindowLocation, UpdateWindowPositionAndSize или как-то так, должны быть.
Ты можешь сделать ещё класс доступным к наследованию, чтобы там удобно расположить нужные методы .
Вроде всё, если ещё что-то вспомню, напишу
Кошак, смотри. Вот представим, у нас есть класс, и называется он Window. Так вот.
Смотри, этот класс должен иметь такой метод, как addElement.
Этот метод принимает в себя некий инстанс от класса Element, вроде в иннере даже был.
Ну т.е. что-то ? super Element
Под каждый элемент нужно по отдельному спец классу:
текст, имэдж, кнопка, фрейм и тд
Этот метод должен добавлять элементы в окно, и возвращать себя же, чтобы можно было цепочку вызовов осуществить.
Важное уточнение, любые числа вроде scale?, x, y, width?, height? и тд должны быть float.
Насчёт font? для текста, ты можешь сделать либо мини класс, как конструктор нужного объекта в представлении джавы, или просто через параметры. И да, учти то, что width и height если не указаны, у элементов всегда рассчитываются сами, это сделай.
Дальше, получение элемента:
твойЮай.getElement<сюда можно дженерик для конкретного типа, чтобы правильно ключи>("название").ключ или тоже самое, но вместо .ключ сделать .getBinding(String name) похожее было в жс иннера где-то видел
твойЮай.getElements() для получения всех элементов
метод getElement может возвращать что-то по типу ...методы и метод setBinding(String name, T value)
Насчёт drawing:
какой-то обобщённый класс, например DrawingElement и так же наследование
твойЮай.setDrawing(где массив, где инстансы DrawingElement)
getDrawing если пригодится, сам придумаешь.
Поскольку сделать не жсный setContent не получится, то попробуй обновлять окно после setBinding.
Насчёт расположения:
тут тоже все сделай float
твойЮай.setLocation(какой-нибудь new WindowLocation().setWidth(float num).setHeight(float num) и тд можешь придумать, или сделать чтобы этот метод принимал все параметры через запятую, но учти, что много параметров просто обязаны быть опциональны)
Насчёт таких деталей как layout:
Это уже из наработок Ильи было, просто убедись, что это работает стабильно.
Все методы вроде forceRefresh, updateScrollDimensions, updateWindowLocation, UpdateWindowPositionAndSize или как-то так, должны быть.
Ты можешь сделать ещё класс доступным к наследованию, чтобы там удобно расположить нужные методы .
Вроде всё, если ещё что-то вспомню, напишу