ang Comment créer un JTextField Personnalisé

Avatar de forum
Robot Forum
Mise à jour le 8 mars 2011  ·   Licence : Autre  ·   Téléchargé 352 fois   ·     Voir tous les téléchargements de l'auteur

CommentairesLa discussion sur le forum
Présentation
Ce programme crée un JTextField personnalisé

Voici comment appeler cette classe.

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;

public class RoundTextUITest extends JPanel
{
public RoundTextUITest()
{
JTextField tf= new JTextField();
tf.setUI(new RoundTextUI());
tf.setPreferredSize(new Dimension(150,30));
tf.setText("Testing 1 2 3 4");
add(tf);
}

public static void main(String [] args)
{
JFrame frame = new JFrame("Customer Interface");
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});

frame.getContentPane().add(new RoundTextUITest(),BorderLayout.CENTER);
frame.setSize(640, 480);
frame.setVisible(true);
}

}
Téléchargement
Compatibilité
 
  1. import java.awt.*;
  2. import javax.swing.*;
  3. import javax.swing.border.*;
  4. import javax.swing.plaf.ComponentUI;
  5. import javax.swing.plaf.metal.MetalTextFieldUI;
  6.  
  7. /**
  8. * A custom TextField UI based on Metal that paints
  9. * text fields with a round border.
  10. */
  11. public class RoundTextUI extends MetalTextFieldUI
  12. {
  13.  
  14. public static ComponentUI createUI(JComponent c)
  15. {
  16. return new RoundTextUI();
  17. }
  18.  
  19. public void installUI(JComponent c)
  20. {
  21. super.installUI(c);
  22. c.setBorder(new RoundBorder());
  23. c.setOpaque(false);
  24. }
  25.  
  26. protected void paintSafely(Graphics g)
  27. {
  28. JComponent c = getComponent();
  29. if (!c.isOpaque())
  30. {
  31. g.setColor(c.getBackground());
  32. g.fillRoundRect(0, 0, c.getWidth() - 1, c.getHeight() - 1, 20, 20);
  33. }
  34. super.paintSafely(g);
  35. }
  36.  
  37.  
  38. private static class RoundBorder extends AbstractBorder
  39. {
  40. public void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
  41. {
  42. Color oldColor = g.getColor();
  43.  
  44. g.setColor(Color.black);
  45. g.drawRoundRect(x, y, width - 1, height - 1, 20, 20);
  46. g.setColor(oldColor);
  47. }
  48.  
  49. public Insets getBorderInsets(Component c)
  50. {
  51. return new Insets(4, 4, 4, 4);
  52. }
  53.  
  54. public Insets getBorderInsets(Component c, Insets insets)
  55. {
  56. insets.left = insets.top = insets.right = insets.bottom = 4;
  57. return insets;
  58. }
  59.  
  60. }
  61. }
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
 
 
 
 
Partenaires

PlanetHoster
Ikoula