Как удалить это размытие на краю JTextField?

#java #swing #graphics

#java #качать #графика

Вопрос:

Я округляю свое JTextField, но после того, как поле округляется, края становятся размытыми и не выглядят профессионально.

Это код, который я использую для округления JTextField. Я расширяю JTextFiled и изменяю paintComponent значения.

 //Rouding the field
protected void paintComponent(Graphics g) {
    g.setColor(getBackground());
    g.fillRoundRect(0, 0, getWidth()-1, getHeight()-1, 15, 15);
    super.paintComponent(g);
}

protected void paintBorder(Graphics g) {
    g.setColor(getForeground());
    g.drawRoundRect(0, 0, getWidth()-1, getHeight()-1, 15, 15);
}

public boolean contains(int x, int y) {
    if (shape == null || !shape.getBounds().equals(getBounds())) {
        shape = new RoundRectangle2D.Float(0, 0, getWidth()-1, getHeight()-1, 15, 15);
    }
    return shape.contains(x, y);
}
 

Ответ №1:

В ваших методах рисования вы можете попробовать использовать сглаживание для графики.

Вы бы установили свойства рисования для отдельного графического объекта:

 Graphics2D g2d = (Graphics2D)g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// add painting logic
g2d.dispose();