Чрезвычайно простая проблема, как говорится в названии: для небольшого проекта я пытался понять, насколько близко я могу подняться к консоли с приложением GUI, и я сделал что-то подобное в качестве теста: < /p>
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextArea text = new JTextArea(25, 80);
text.setFont(new Font("Consolas", Font.PLAIN, 12));
f.add(text);
f.pack();
f.setVisible(true);
}
< /code>
Но, несмотря на инициализацию JTextArea с 80 столбцами, в фактическом приложении он подходит только 75 символам: < /p>
Проблема каким -то образом сохраняется с разным числом столбцов, разных шрифтов и разных размеров шрифтов, за исключением из -за размер Consolas 14. Количество рядов всегда верно. Версия Java, которую я использую, - это Java 17. < /p>
Редактировать:
Я нашел хотя бы причиной этих ошибок. Я установил свой рабочий стол, чтобы масштабировать размер текста, приложений и т. Д. На 125%. Если я установил бы это на стандартный 100%, то текстовая область действительно подходит для 80 символов в ряду - или, она подходит 80 без линейной обертки и 79 с линейной оберткой, но я могу просто увеличить его ширину на 1 пиксель, так что она подходит 80 символам в любом случае.
Очевидно, что я не хочу менять настройки экрана (что, как я все еще не знаю, я все еще не знаю). Фактическое решение < /em>, если такая вещь возможно.
Funny Sidenote, после того, как я изменил настройку экрана с 100% на 125%, текстовая область внезапно подходит для того, чтобы соответствовать 87 символам вместо 80 или 75. Но попробовать мой фактический код, а не этот минимум, все еще будет иметь 75. Данные?
Подробнее здесь: https://stackoverflow.com/questions/795 ... of-columns