transparente texto que personalizado hacer como colocar bolivia app java swing jtextfield placeholder

texto - que es un placeholder en java



java swing JTextField set PlaceHolder (4)

Esta pregunta ya tiene una respuesta aquí:

Creo un JTextField y ahora quiero establecer el marcador de posición en ese JTextField. ¿No sé cómo configurar el marcador de posición en el JTextField? Por favor, ayuda cómo configurar el texto de marcador de posición en JTextField

JTextField database=new JTextField("Enter Data Base Name"); database.setPreferredSize(database.getPreferredSize()); database.setText("");

Ese es mi código para el campo de texto ahora en ese código. Quiero establecer un marcador de posición cómo establecer un marcador de posición en ese JTextField


Prueba esta clase:

package playground; import java.awt.*; import javax.swing.*; import javax.swing.text.Document; @SuppressWarnings("serial") public class PlaceholderTextField extends JTextField { public static void main(final String[] args) { final PlaceholderTextField tf = new PlaceholderTextField(""); tf.setColumns(20); tf.setPlaceholder("All your base are belong to us!"); final Font f = tf.getFont(); tf.setFont(new Font(f.getName(), f.getStyle(), 30)); JOptionPane.showMessageDialog(null, tf); } private String placeholder; public PlaceholderTextField() { } public PlaceholderTextField( final Document pDoc, final String pText, final int pColumns) { super(pDoc, pText, pColumns); } public PlaceholderTextField(final int pColumns) { super(pColumns); } public PlaceholderTextField(final String pText) { super(pText); } public PlaceholderTextField(final String pText, final int pColumns) { super(pText, pColumns); } public String getPlaceholder() { return placeholder; } @Override protected void paintComponent(final Graphics pG) { super.paintComponent(pG); if (placeholder == null || placeholder.length() == 0 || getText().length() > 0) { return; } final Graphics2D g = (Graphics2D) pG; g.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setColor(getDisabledTextColor()); g.drawString(placeholder, getInsets().left, pG.getFontMetrics() .getMaxAscent() + getInsets().top); } public void setPlaceholder(final String s) { placeholder = s; } }


Si entiendo la pregunta, Mensaje de texto muestra una forma en que puede hacerlo.


Tan simple como usar un tarro swingx entonces asi

JTextArea txtMSISDNList = new JTextArea(); PromptSupport.setPrompt("01197585960,01197585961", txtMSISDNList);


JTextField searchText;

...

En constructor:

searchText = new JTextField("Search"); searchText.setForeground(Color.GRAY); searchText.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { if (searchText.getText().equals("Search")) { searchText.setText(""); searchText.setForeground(Color.BLACK); } } @Override public void focusLost(FocusEvent e) { if (searchText.getText().isEmpty()) { searchText.setForeground(Color.GRAY); searchText.setText("Search"); } } });