(пожалуйста, извините за любые ошибки в вопросе / форматировании вопроса, так как я новичок)
[Обратите внимание, что я пока не могу размещать здесь код, а код FXML не стоит размещать, верно? Кроме того, у меня очень мало опыта программирования GUI до этого ... Сначала я взял JavaFX 8, потому что использую Java, и слышал, что FX >> Swing разными способами]
Я пытаюсь создать графический интерфейс, который позволяет пользователю вводить числа головоломки NumberLink (через события действий мыши), а затем отображать головоломку в сетке с функциями для рисования пути и отменять его. Это почти та же функциональность, что и в Numberlink на Николи. Загадка довольно интересная, и это правила. Пользовательский интерфейс предназначен для интерактивного решения головоломки путем рисования линий и т. Д., Как на сайте Nikoli. Решатель будет добавлен позже.
В моем проекте у меня есть
Stage
, в котором установкаScene
запрашивает у пользователя строки и столбцы (чтобы взять размер головоломки),затем он генерирует пустую сетку (я думаю об использовании здесь
GridPane
), и пользователь щелкает квадратики, чтобы ввести числа в квадрат. эта фаза не проблема, если я используюTextField
s и слушателей мыши и сохраняю информацию в сетке ... следующая фаза - это то, на чем я застрял ... если я точно не знаю, как это сделать, я не могу добиться прогресса ...на третьем этапе я должен отображать числа для пользователя так же, как на сайте Nikoli (выделение пар чисел при наведении курсора мыши также является необходимой функцией, с которой, я думаю, я могу справиться с помощью CSS) .. и пользователь должен нарисовать пути между числами, как и на этом сайте (я думал, что классы
VLineTo
иHLineTo
подойдут ... но я не уверен и не могу найти никаких альтернатив) Пожалуйста, помогите с этим ...
Имея это в виду, я сделал макеты фиктивных графических интерфейсов на основе FXML, чтобы проверить, работают ли мои идеи ... и я не могу заставить GridPane рисовать линии поверх него (то есть я не могу размещать объекты Line, такие как HLineTo
, поверх панелей сетки ) .... есть ли другой способ сделать то, что мне нужно? Я также подумал о создании нескольких Canvas
объектов в сетке (каждый квадрат - это отдельный холст), имеющих числа как объекты Text
и холст поверх сетки с включенной прозрачностью, и их обоих на StackPane
, но тогда, дочерние элементы StackPane
не будут синхронизированы.
Пожалуйста, помогите указать мне в правильном направлении, спасибо (скажите, если я упускаю что-то базовое, а я думаю, что это так).