Как рисовать строку на Java (с использованием Graphics2d) в моноширинном режиме?
Важным методом, необходимым для визуализации текста, является drawString()
, как описано ниже. Нет «моноширинного режима», как такового, но даже пропорционально разнесенные шрифты обычно используют постоянную ширину для цифровых символов.
private static final Font font = new Font("Monospaced", Font.PLAIN, 32);
private static final String s = "12:34";
...
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setFont(font);
int xx = this.getWidth();
int yy = this.getHeight();
int w2 = g.getFontMetrics().stringWidth(s)/2;
int h2 = g.getFontMetrics().getDescent();
g.setColor(Color.green);
g.drawString(s, xx/2 - w2, yy/2 + h2);
}
Там есть полный пример here, и вы можете продлить подходящий JComponent
контролировать позиционирование с помощью менеджера компоновки, как видно here.
Добро пожаловать в SO, javaAmator! К сожалению, даже если вы делаете проект на Java, этот вопрос не подходит для SO, потому что действие поиска шрифта не связано с программированием. Я предлагаю вам обратиться к http://www.doctype.com/, где есть более ориентированные на дизайн люди. Если у вас есть вопросы о таких вещах, как алгоритмы, синтаксис языка программирования или ошибки в коде, мы будем рады помочь! – Pops
@Lord Torgamus: Я согласен с вашим комментарием, но я предложил ответ на вопрос рисования. Извините, если я предобрал ваше предложение, чтобы помочь. Обычно я придерживаюсь семейств шрифтов, определенных платформой, поэтому я бы приветствовал любые дополнения или исправления о том, как выбирать альтернативные шрифты. – trashgod