JPanel Border Background

I searched Google but did not find the correct answer. I have a JPanel and I want it to have a gradient going from top to bottom. I'm just going to use two colors. How can I achieve this?

+6
source share
2 answers

Here you go:

 import java.awt.Color; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class TestPanel extends JPanel { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); int w = getWidth(); int h = getHeight(); Color color1 = Color.RED; Color color2 = Color.GREEN; GradientPaint gp = new GradientPaint(0, 0, color1, 0, h, color2); g2d.setPaint(gp); g2d.fillRect(0, 0, w, h); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(); TestPanel panel = new TestPanel(); frame.add(panel); frame.setSize(200, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } } 
+7
source

hey Bebbie you can use this:

 JPanel contentPane = new JPanel() { @Override protected void paintComponent(Graphics grphcs) { super.paintComponent(grphcs); Graphics2D g2d = (Graphics2D) grphcs; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); GradientPaint gp = new GradientPaint(0, 0, getBackground().brighter().brighter(), 0, getHeight(), getBackground().darker().darker()); g2d.setPaint(gp); g2d.fillRect(0, 0, getWidth(), getHeight()); } }; 

hope help; You can also return to this art for more help: Gradient backgrounds for any jcomponent

+4
source

All Articles