На случайности, что вам нужно, это высокоуровневое описание (что учебники, хорошие и полезные, как они, не всегда обеспечивают):
GridLayout и FlowLayout оба являются менеджерами компоновки.
Менеджер компоновки позиционирует компоненты в контейнере (например, JPanel или JFrame). Различные менеджеры макетов делают это по-разному, с разными правилами, для разных целей, но все они имеют общее. Идея состоит в том, что программист добавляет компоненты в контейнер, а менеджер компоновки определяет их положение.
Поскольку контейнеры верхнего уровня (чаще всего) часто изменяются пользователем конечным пользователем, одним из основных заданий менеджера компоновки является размещение компонентов в соответствии с его правилами, когда контейнер больше или меньше, чем «натуральный» размер можно получить после упаковки компонентов. При изучении менеджеров макетов, это одна из вещей, на которые вы учитесь уделять пристальное внимание, так что пользовательский интерфейс ведет себя так, как вы этого хотите. Поверьте мне, вы не хотите писать код, чтобы обрабатывать все возможные обстоятельства для изменения размера.
В GridLayout есть правила, которые размещают компоненты в сетке, где каждая ячейка имеет одинаковый размер, и все равно равномерно.
В FlowLayout есть правила для позиционирования компонентов один за другим, горизонтально (и, возможно, вертикально, я не помню, как это было раньше) и «обертывания» их, если контейнер сделан слишком малым, чтобы содержать их.
Это менеджеры макетов, которые отличаются друг от друга. Взгляните на [Визуальное руководство для менеджеров макетов] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) – MadProgrammer
В официальных руководствах по Java есть описание менеджеров макетов, см. [здесь] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). В чем ваш вопрос? –
ahhh .. так что те макеты, которые создают ваш пользовательский графический интерфейс. и JOptionPane - это предопределенный графический интерфейс. – jarnthrax