7
votes

Java Swing Bordure arrondie pour JTextfield

Quand je le fais:

LineBorder lineBorder =new LineBorder(Color.white, 8, true);
jTextField2.setBorder(lineBorder );


2 commentaires

-1, vous avez posé cette question il y a quelques semaines: Stackoverflow.com/Questtions/8305460/java-swing-jtextfield-in set / ...


@camickr merci, n'a pas reconnu le duplicata - votera pour la fermer ..


4 Réponses :


16
votes

Vous pouvez remplacer jtextfiled code> construire votre propre coin arrondi jtextfield code>. Vous devez remplacer son PaintComponent () Code>, Paintborder () Code> et contient () Code> Méthodes. Vous devez dessiner le chutateur comme forme de champ de texte.

Exemple: P>

    JFrame frame = new JFrame("Rounded corner text filed demo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 400);
    frame.setLayout(new FlowLayout());
    JTextField field = new RoundJTextField(15);
    frame.add(field);
    frame.setVisible(true);


0 commentaires

1
votes

Très similaire à la réponse de @harry Joy - Juste la distance complète, comme décrit dans une récente Réponse

  • Définissez un type de bordure qui expose une forme
  • Faites le conscience du composant d'une bordure éventuellement façonnée
  • S'il détecte la bordure façonnée, prenez la peinture de fond dans la peinture compromettée à l'intérieur de la forme (pas besoin de toucher la peinture)

0 commentaires

2
votes

1
votes

Ceci modifiera tout JTextfield que vous créez dans l'ensemble de l'application

dépose juste au début de votre toute première fenêtre, cela affectera chaque jtextfield. P>

@SuppressWarnings("serial")
public static class CustomeBorder extends AbstractBorder{
    @Override
    public void paintBorder(Component c, Graphics g, int x, int y,
            int width, int height) {
        super.paintBorder(c, g, x, y, width, height);
        Graphics2D g2d = (Graphics2D)g;
        g2d.setPaint(COLOR_BORDE_SIMPLE);
        Shape shape = new RoundRectangle2D.Float(0, 0, c.getWidth()-1, c.getHeight()-1,9, 9);
        g2d.draw(shape);
    }
}


0 commentaires