How to change JSeparator color?

The question is in the title.

I am currently doing something like:

jSperator = new JSeparator(); jSeparator1.setForeground(new java.awt.Color(255, 51, 51)); 

But the separator retains its color by default, something like 212,212,212.

+7
source share
2 answers

need to change 'Background' instead of 'Foreground'

the logic may be different for Nimbus Look and Feel

Metal L & F

enter image description here

 import javax.swing.*; import java.awt.*; public class GridBagSeparator1 { public static void main(String[] args) { JFrame frame = new JFrame("Laying Out Components in a Grid"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JSeparator sep = new JSeparator(SwingConstants.HORIZONTAL); sep.setBackground(Color.black); JSeparator sep1 = new JSeparator(SwingConstants.HORIZONTAL); sep1.setBackground(Color.blue); JSeparator sep2 = new JSeparator(SwingConstants.HORIZONTAL); sep2.setBackground(Color.green); JSeparator sep3 = new JSeparator(SwingConstants.HORIZONTAL); sep3.setBackground(Color.red); frame.setLayout(new GridLayout(4, 0)); frame.add(sep); frame.add(sep1); frame.add(sep2); frame.add(sep3); frame.pack(); frame.setVisible(true); } } 
+11
source

JSeparator has 2 colors, one for the line, one for the shadow. You can change both parameters by setting the colors for the background and foreground, respectively.

 JSeparator sep = new JSeparator(); sep.setForeground(Color.green); // top line color sep.setBackground(Color.green.brighter()); // bottom line color 
+4
source

All Articles