Как изменить размер шрифта из текстового поля? Я написал метод paintText, который вызывается с paintComponent. Изменение размера шрифта меньшего размера работает как талисман, но его масштабирование снова не выполняется, потому что у меня нет минимальной ширины.
Как я могу получить минимальный размер шрифта шрифта для увеличения?
g.setColor(getForeground());
if (this.getFont() != null && this.getText() != null) {
FontMetrics fm = getFontMetrics(getFont());
if(fm.stringWidth(this.getText()) >= (this.getWidth()-(4*borderWidth+1))) {
if(this.getFont().getSize() >= 8) {
this.setFont(new Font(this.getFont().getName(), this.getFont().getStyle(), this.getFont().getSize() - 2));
//fm = getFontMetrics(getFont());
}
} else if(fm.stringWidth(this.getText()) < (this.getWidth()-(4*borderWidth+fm.stringWidth(getText())))) {
this.setFont(new Font(this.getFont().getName(), this.getFont().getStyle(), this.getFont().getSize() + 2));
//fm = getFontMetrics(getFont());
}
fm = getFontMetrics(getFont());
//g.setColor(this.getForeground());
g.drawString(this.getText(), ((this.getWidth() / 2) - (fm.stringWidth(this.getText()) / 2)),
((this.getHeight() / 2) + fm.getMaxDescent()));
Размер рамки - это просто расстояние до края подшивки компонента.