type texto por personalizar nombre imagen estilo cambiar bootstrap java swing textfield placeholder

java - texto - personalizar input file bootstrap



Java-marcador de posiciĆ³n en el campo de texto (2)

Encontré esto en los foros del oráculo.

public class TextFieldWithPrompt extends JTextField{ @Override protected void paintComponent(java.awt.Graphics g) { super.paintComponent(g); if(getText().isEmpty() && ! (FocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == this)){ Graphics2D g2 = (Graphics2D)g.create(); g2.setBackground(Color.gray); g2.setFont(getFont().deriveFont(Font.ITALIC)); g2.drawString("zip", 5, 10); //figure out x, y from font''s FontMetrics and size of component. g2.dispose(); } }

https://forums.oracle.com/forums/thread.jspa?threadID=1349874

Estoy tratando de crear una GUI con Swing. Mi problema es que tengo un campo de texto, pero quiero que tenga un "marcador de posición" (como en html). Leí aquí y allá que se puede hacer anulando la pintura () del campo de texto.

Desde que se generó mi código, descubrí que necesito usar el "Código de creación personalizado" para anular el código que se generó.

Esto es lo que he puesto en el campo "Código de creación personalizado"

new javax.swing.JTextField() { String test = super.getText(); String hint = "Username"; public void paint(Graphics g) { if ( test == null || test.length() < 1 ) { g.setColor( Color.red ); g.drawString(hint, 0, 0); } g.setColor(Color.BLACK); super.paint(g); } }

Esto genera la siguiente salida

javax.swing.JTextField username = new javax.swing.JTextField() { String test = super.getText(); String hint = "Username"; public void paint(Graphics g) { if ( test == null || test.length() < 1 ) { g.setColor( Color.red ); g.drawString(hint, 0, 0); } g.setColor(Color.BLACK); super.paint(g); } };

Por ahora veo el campo textField pero no hay nada en él, tal vez deba agregar alguna función a algún evento, pero no estoy seguro.

Estaría agradecido si alguien pudiera echar una mano.

EDITAR: Aquí hay una demostración de lo que quiero hacer: http://davidwalsh.name/demo/html5-placeholder.php


Utilizo para anular el método de pintura de campos de texto, hasta que terminé con más campos de texto personalizados, entonces realmente quería ...

Luego encontré esta API rápida que es simple de usar y no requiere que extienda ningún componente. También tiene una buena API "buddy"

Esto ahora se ha incluido en la biblioteca SwingLabs, SwingX , lo que hace que sea aún más fácil de usar ...