Как найти ширину JTextField с учетом символов no.of? - PullRequest
4 голосов
/ 31 августа 2010

У меня есть JTextField, который может принимать фиксированное количество символов (например, 10 символов).Я хочу ограничить ширину TextField так, чтобы он точно занимал столько символов.Итак, учитывая символы no.of, есть ли способ узнать ширину (в пикселях), которая потребуется?Предположим, что мы знаем шрифт.

Ответы [ 3 ]

5 голосов
/ 31 августа 2010

Это даст вам точную ширину, хотя вам понадобятся дополнительные пиксели отступов, чтобы сделать ее красивой.

myJTextField.getFontMetrics(myFont).stringWidth(myString);
4 голосов
/ 31 августа 2010

Этот подход имеет смысл только для непропорциональных шрифтов. В противном случае вам нужно было бы найти «самый большой» символ в наборе символов, чтобы сделать поле достаточно широким для 10 символов этого типа.

Практическим подходом было бы «угадать» широкий символ и вычислить ширину, чтобы обеспечить хорошую вероятность того, что текстовое поле будет достаточно большим для обычного ввода. Адаптация lins314159 пример кода:

myJTextField.getFontMetrics(myFont).stringWidth("wwwwwwwwww);
0 голосов
/ 31 августа 2010
JTextField textField = new JTextField(10);

Пользовательский интерфейс автоматически изменит размер текстового поля. Я полагаю, что на самом деле в качестве размера используется символ «W», поэтому в большинстве случаев он будет больше, чем вам нужно. Если вы хотите, чтобы ширина была точной, используйте моноширинный шрифт.

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