С JTextField
содержит только одну строку текста, возможно, вам лучше по размеру JTextField
.
Насколько я знаю, нет хорошего способа сделать то, что вы просили. Обратите внимание, что в то время как есть setHorizontalAlignment()
, нет соответствующего setVerticalAlignment()
. setAlignmentY()
не делает это (это устанавливает выравнивание компонентов, добавленных в контейнер, что не имеет смысла для JTextField
).
Вы можете поддельной его, поместив JTextField
на севере BorderLayout
следующим образом:
tf.setBorder(null);
f.setBackground(Color.WHITE);
f.add(tf, BorderLayout.NORTH);
f.add(Box.createVerticalGlue(), BorderLayout.CENTER);
Но я подозреваю, что вы действительно хотите, может быть несколько строк, в этом случае вы должны использовать JTextArea
,
+1: правильный ответ – dfa
Я не буду отмечать его вниз, так как это все-таки полезная информация, но это * не * правильный ответ - 'JTextField' по умолчанию выравнивания по горизонтали, и проблема в автора с вертикальным выравниванием (так как вы можете быстро увидеть, запускаете ли вы код). –
К сожалению - это должно быть: «по умолчанию - горизонтальное выравнивание _center_». –