.
ОБЗОР, ОБРАЗЕЦ
Привет всем,
Я создал базовый решатель Sudoku, который может решить большинство проблем довольно быстро. У меня все еще впереди много работы, чтобы решить даже самые сложные проблемы, но сначала я хотел бы попытаться реализовать основной графический интерфейс JFrame.
Я работал с интернет-апплетами в прошлом, но никогда раньше с JFrames.
Я хочу создать нечто похожее на изображение ниже (для начала):
-------------------------------------------------------------------------------------------------
! Sudoku Solver 1.0 - [] X !
-------------------------------------------------------------------------------------------------
! _____________ _____________ _____________ _____________ _____________ _____________ !
! | _ _ _ | _ _ _ | _ _ _ | | _ _ _ | _ _ _ | _ _ _ | !
! | !5! !_! !_! | !_! !_! !_! | !6! !_! !1! | | !5! !7! !2! | !4! !9! !3! | !6! !8! !1! | !
! | _ _ _ | _ _ _ | _ _ _ | | _ _ _ | _ _ _ | _ _ _ | !
! | !6! !_! !_! | !_! !_! !2! | !4! !_! !_! | | !6! !1! !3! | !8! !5! !2! | !4! !7! !9! | !
! | _ _ _ | _ _ _ | _ _ _ | | _ _ _ | _ _ _ | _ _ _ | !
! | !_! !_! !_! | !7! !_! !1! | !_! !_! !2! | | !8! !4! !9! | !7! !6! !1! | !3! !5! !2! | !
! -_____________-_____________-_____________- -_____________-_____________-_____________- !
! | _ _ _ | _ _ _ | _ _ _ | | _ _ _ | _ _ _ | _ _ _ | !
! | !_! !_! !4! | !_! !2! !_! | !_! !3! !_! | | !1! !6! !4! | !9! !2! !7! | !5! !3! !8! | !
! | _ _ _ | _ _ _ | _ _ _ | .---. | _ _ _ | _ _ _ | _ _ _ | !
! | !_! !3! !_! | !_! !_! !_! | !_! !9! !_! | | > | | !2! !3! !8! | !5! !1! !6! | !7! !9! !4! | !
! | _ _ _ | _ _ _ | _ _ _ | '---' | _ _ _ | _ _ _ | _ _ _ | !
! | !_! !_! !_! | !_! !4! !_! | !_! !_! !_! | | !7! !9! !5! | !3! !4! !8! | !1! !2! !6! | !
! -_____________-_____________-_____________- -_____________-_____________-_____________- !
! | _ _ _ | _ _ _ | _ _ _ | | _ _ _ | _ _ _ | _ _ _ | !
! | !_! !2! !_! | !1! !_! !5! | !9! !_! !_! | | !4! !2! !7! | !1! !8! !5! | !9! !6! !3! | !
! | _ _ _ | _ _ _ | _ _ _ | | _ _ _ | _ _ _ | _ _ _ | !
! | !_! !_! !_! | !6! !_! !_! | !_! !_! !5! | | !3! !8! !1! | !6! !7! !9! | !2! !4! !5! | !
! | _ _ _ | _ _ _ | _ _ _ | | _ _ _ | _ _ _ | _ _ _ | !
! | !_! !_! !6! | !_! !3! !_! | !_! !_! !7! | | !9! !5! !6! | !2! !3! !4! | !8! !1! !7! | !
! -_____________-_____________-_____________- -_____________-_____________-_____________- !
! !
! .-------------------------------------------------------------------------------------------. !
! | | !
! | Solved Puzzle in 9.096ms | Completely Solved: True | !
! | | !
! '-------------------------------------------------------------------------------------------' !
! !
-------------------------------------------------------------------------------------------------
.
КОНКРЕТНЫЕ
: Левая головоломка
- 9x9 Разделы должны быть четко определены (строки между отдельными ячейками)
- Текстовые поля должны принимать только номера/только для ввода одного номера (если возможно)
: Правая головоломка
- 9x9 Разделы должны быть четко определены (строки между отдельными ячейками)
- Не имеет значения, можно ли редактировать/редактировать файлы, если они могут отображать результат
: кнопка в центре
- Должен запускать [SudokuPuzzle].solve();
: нижнее текстовое поле
- Нельзя редактировать
.
ЧТО Я ИЩУ ДЛЯ
Я знаю из прошлых опытов, что все это можно сделать в JFrame, но поскольку я никогда не строил его сам, я не совсем уверен, что components (элементы контента, панели, настройки и т.д.). Мне нужно использовать для выполнения моих спецификаций. Мне еще предстоит найти способ ограничить мои текстовые поля номерами и не позволять пользователю вставлять более одного значения за раз. Являются ли текстовые окна действительно лучшим вариантом, или я пропускаю что-то, что может более конкретно удовлетворить мои потребности?
Мне нужно не только знать, какие классы мне нужны, но и как их организовать, чтобы кнопка оставалась комфортно между двумя головоломками, а текстовое поле сидит внизу. Из того, что я читал, MigLayout кажется вариантом упрощения этот процесс.
.
ПРИМЕЧАНИЯ КОНЕЦ
Многие, огромное спасибо всем, кто помогает. Если какая-либо часть этого вопроса окажется немного грубой или резкой, я извиняюсь. Я, как правило, размещаю большинство своих вопросов ночью, поэтому у сообщества есть несколько часов, чтобы разглядеть его, прежде чем я попробую все ответы (что и тот факт, что я больше всего занимаюсь делами).
Я буду бодрствовать в течение 1-2 часов, чтобы ответить на любые вопросы.
Снова спасибо,
Жюстьян