Я пытаюсь создать быстрый и грязный интерфейс свинга. В моем пользовательском интерфейсе есть пара JTextFields, затем JTextArea в JScrollPane, так как содержимое JTextArea может стать большим.
Я использую простой BoxLayout, я не хотел тратить часы на GridBagLayout.
Моя проблема в том, что когда я изменяю размер окна, JLabels становятся огромными. У них будет одна строка текста, сидящая в огромном количестве пустого пространства. Это выглядит некрасиво и расточительно. JTextArea, с другой стороны, никогда не увеличится в размере, потому что JScrollPane заботится о дополнительном контенте. Таким образом, у меня будут огромные JTextFields и крошечная JTextArea в области прокрутки с едва видимой линией.
Есть ли простой способ убедиться, что JTextFields никогда не увеличивают свою высоту за пределы одной строки текста? Может быть, переопределение getMaximumSize / getPreferredSize? Если да, то каким будет код?
Единственная функция, которая разрешит эту ситуацию, - это JFrame.pack (), но она изменит размер окна (крайне нежелательно) и иногда не утруждает себя ограничением рабочего стола.