#java #swing #layout-manager
Вопрос:
Я создаю поле из виджетов, которые представляют собой изображения шестиугольников. Они выглядят так, как на этом изображении:
Но они мне нужны вот так:
Я думаю, что там должна быть какая-то хитрая планировка…
content.setLayout(new GridLayout(6,6));
content.setBounds(0, 0, 700, 700);
Cell[][] cells = game.getField().getCells();
for(Cell[] c: cells){
for(Cell cell : c){
content.add(new CellWiget(cell));
}
}
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);`
Комментарии:
1. В долгосрочной перспективе вам, вероятно, придется подумать о создании пользовательского менеджера макетов
2. Я бы создал JPanel для рисования и нарисовал изображения в правильных положениях. Учебник Oracle по выполнению пользовательской живописи покажет вам, как это сделать.
3. Какова цель этого макета? Ожидается ли, что пользователь будет взаимодействовать с ним (например, если это кнопки). Является ли это чисто визуальным (без взаимодействия с пользователем)? Хотя MadProgrammer может быть прав в некоторых случаях использования, для чисто визуального поля шестиугольников, у меня возникнет соблазн последовать предложению @GilbertLeBlanc-и, возможно, даже если между шестиугольниками и пользователем есть какой — то интерактивный элемент.
4. Я думаю, что должен быть какой — то сложный макет… — только если вы его напишете или сможете найти, выполнив поиск на этом сайте или в Интернете.