
Use this:
JTextField Mytxtfield = new JTextField() {protected void paintComponent( Graphics g ) { if ( !isOpaque( ) ) { super.paintComponent( g ); return; } Graphics2D g2d = (Graphics2D)g; GradientPaint gp = new GradientPaint( 0, 0, color1, 0, 20, color2); g2d.setPaint( gp );
Full working code:
import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.Shape; import java.awt.SystemColor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; public class DBconnection extends JFrame { private JPanel contentPane; private JTextField textFieldHost; private Color color2 = Color.white; private Color color1 = Color.white; public DBconnection() throws SAXException, IOException, ParserConfigurationException { setTitle("Connect To MDM Database"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(450, 200, 410, 280); contentPane = new JPanel(); contentPane.setBackground(SystemColor.inactiveCaption); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); GridBagLayout gbl_contentPane = new GridBagLayout(); gbl_contentPane.columnWidths = new int[]{0, 0, 0, 0}; gbl_contentPane.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; gbl_contentPane.columnWeights = new double[]{0.0, 0.0, 1.0, Double.MIN_VALUE}; gbl_contentPane.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE}; contentPane.setLayout(gbl_contentPane); textFieldHost = new JTextField() {protected void paintComponent( Graphics g ) { if ( !isOpaque( ) ) { super.paintComponent( g ); return; } Graphics2D g2d = (Graphics2D)g; GradientPaint gp = new GradientPaint( 0, 0, color1, 0, 20, color2); g2d.setPaint( gp );
Also, changing the value of color1 and color2, you can get a gradient effect.
I changed your code and got the following: 
code:
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.AbstractBorder; public class JTextFieldTest { JTextField textField; boolean activate = false; public void createUI(){ JFrame frame = new JFrame("Test JTextField"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(true); MainPanel mainPanel = new MainPanel(); frame.add(mainPanel,BorderLayout.CENTER); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static void main(String[] args) { JTextFieldTest jTextFieldTest = new JTextFieldTest(); jTextFieldTest.createUI(); } @SuppressWarnings("serial") class MainPanel extends JPanel{ public MainPanel(){ textField = new JTextField("Test JTextField") {protected void paintComponent( Graphics g ) { if ( !isOpaque( ) ) { super.paintComponent( g ); return; } Graphics2D g2d = (Graphics2D)g; GradientPaint gp = new GradientPaint( 0, 0, Color.white, 0, 20, Color.white); g2d.setPaint( gp );