Заполнитель в JTextField с правильном направлении - PullRequest
0 голосов
/ 21 февраля 2020

Я использую следующий код для создания заполнителя в JTextField, но моя проблема в том, что направление текста заполнителя всегда слева

@Override
protected void paintComponent(final Graphics pG) {
    super.paintComponent(pG);

    if (placeholder.length() == 0 || getText().length() > 0) {
        return;
    }

    final Graphics2D g = (Graphics2D) pG;
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    g.setColor(new Color(phColor.getRed(),phColor.getGreen(),phColor.getBlue(),140));


   g.drawString(placeholder, getMargin().right,(getSize().height)/2 + getFont().getSize()/2 );
}

Как создать заполнитель в JTextField с направлением текста вправо ?

Вот изображение моей проблемы

1 Ответ

0 голосов
/ 21 февраля 2020

Используйте класс FontMetrics:

FontMetrics fM = g.getFontMetrics(/*The font that you're using*/);

g.drawString(/* Your Text */, rightEdge - fM.stringWidth(/* Your Text */), y);

Вы получаете правильный край, добавляя x-позицию к ширине вашего JTextField. У вас уже нет метода для этого: "getMargin.right ()"? Или это для чего-то еще?

...