Как добавить дополнение к jtextfield
Как добавить дополнение к jtextfield?
Я пробовал tf.setMargin(new Insets(5,5,5,5));
, который не имеет никакого эффекта.
Ответы
Ответ 1
Проблема, с которой вы сталкиваетесь, заключается в том, что пользовательский интерфейс устанавливает собственную границу в текстовое поле, переопределяя установленный вами марж. Вы можете увидеть предупреждение об этом в javadoc setMargin()
.
Решение состоит в том, чтобы пользовательский интерфейс устанавливал границу, а затем сжимал другую границу:
field.setBorder(BorderFactory.createCompoundBorder(
field.getBorder(),
BorderFactory.createEmptyBorder(5, 5, 5, 5)));
Ответ 2
вы смотрите CompoundBorder, там вы можете установить LineBorder(Color.gray, 1)
и
EmptyBorder(5, 5, 5, 5)
Ответ 3
Самый простой способ - использовать BorderFactory
field.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
Ответ 4
Я знаю, что это слишком поздно, но на самом деле, если вы хотите, чтобы на Java всегда был последовательный внешний вид, вы должны редактировать пользовательский интерфейс, чтобы каждое текстовое поле, которое вы создаете, не нуждалось в его собственном специальном коде. Итак, взяв пример Рассела Захнизера выше:
Border tfBorder = UIManager.getBorder("TextField.border");
Border newBorder = BorderFactory.createCompoundBorder(tfBorder,
BorderFactory.createEmptyBorder(5, 5, 5, 5)));
UIManager.setBorder("TextField.border", newBorder);
Ответ 5
Вы можете применить это к текстовому ящику, уже созданному с помощью границы
jTextField1.setBorder(BorderFactory.createCompoundBorder(jTextField1.getBorder(), BorderFactory.createEmptyBorder(6, 6, 6, 6)));