Как воссоздать макет Swing gui, созданный с помощью автоматически сгенерированного кода NetBeans? - PullRequest
0 голосов
/ 05 марта 2020

Я уже сделал это в Netbeans GUI Builder:

enter image description here

Но он полон автоматически сгенерированного кода, и я не знаю, где разместите мои дополнительные коды, поэтому я хочу изменить их на ручной код. Я попытался BorderLayout, и я также начал изучать GridBagLayout, но я все еще не могу повторить это. Я застрял здесь на неделю, и мне нужно пройти мою java систему в этом месяце.

  • Не могли бы вы написать это для меня, пожалуйста?
  • Какие макеты я должен использовать для ручной репликации GUI?
  • Как можно легко изменить размер textarea (пикселей) без использования [setColumns] или [setRows]?

Ответы [ 3 ]

0 голосов
/ 05 марта 2020

Вы можете установить макет вашей панели на null.

Тогда у вас есть возможность разместить и определить размер каждого элемента с помощью .setBounds(),

Это много работы, но так Вы можете создать свой gui как хотите.

пример:

JPanel panel = new JPanel();
panel.setLayout(null);
JButton button = new JButton("hit me");
button.setBounds(10, 10, 50, 20); //(xpos,ypos,width,height)
0 голосов
/ 05 марта 2020

Как я могу легко изменить размер текстовой области (в пикселях) без использования [setColumns] или [setRows]?

Вы не должны пытаться это делать.

Методы строки / столбца предназначены для того, чтобы дать текстовой области подсказку, чтобы она могла рассчитать свой собственный предпочтительный размер.

Строки / столбцы созданы для того, чтобы вам было легко.

Я также начал изучать GridBagLayout

Вероятно, это хорошее место для начала. Например, я вижу сетку 2 x 2:

  1. черная область - это будет расти вертикально и горизонтально
  2. текстовая область - это будет расти по вертикали
  3. кнопки под черной областью - фиксированный размер
  4. кнопки под текстовой областью - растут горизонтально

Тогда для областей 3 и 4 вы бы использовали панель для удержания компонентов. Эти панели могут использовать другие менеджеры компоновки.

Область 3 может быть BoxLayout. Она также может содержать панель, использующую GridLayout для двух полей со списком.

Область 4, вероятно, будет GridLayout.

. Главное в управлении компоновкой заключается в том, что вы можете вкладывать панели с различными менеджерами макетов.

Прочтите руководство по Swing на Менеджеры макетов для получения дополнительной информации и рабочих примеров

0 голосов
/ 05 марта 2020

Все, что я могу вам помочь, это то, что вы можете использовать BorderLayout в качестве макета для вашего фрейма.

Черный экран с Panel будет в BoxLayout ( больше информации ) в центре BorderLayout. Panel будет содержать элементы под черным экраном, вы можете использовать GirLayout (кроме двух кнопок под textarea)

Текстовая область и две кнопки на востоке в BoxLayout и расположен на востоке от основной BorderLayout

enter image description here

(извините за плохой рисунок, но я надеюсь, что это поможет вам лучше понять структуру макетов)

посмотрите здесь , чтобы узнать больше о макетах.

для текстовой области, вы ищете?

new JTextArea(WIDTH, HEIGHT);

создайте текстовую область с помощью setColumns или setRows

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...