Как я могу динамически изменить размер шрифта? (Java, JTextField) - PullRequest
0 голосов
/ 31 марта 2020

Как изменить размер шрифта из текстового поля? Я написал метод 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()));

Размер рамки - это просто расстояние до края подшивки компонента.

...