How to change the color of a JSplitPane

java, swing

Solution

`JLabel` is by default `NON_Opaque`, simple is transparent, you can

change `JLabels` to the `JComponent` or `JPanel` could be better

change opacity by `JLabel#setOpaque(true)`

Problem

I have written a small program, while reading a book about swing, that creates a JSplitPane between two labels. The problem is that the JSplitPane can barely be seen (at least in my operating system - MAC OS Lion) and setting some properties on it (like foreground color) does not seem to work. Here is the code : ``` //Demonstrate a simple JSplitPane package swingexample4_6; import javax.swing.*; import java.awt.*; public class SplitPaneDemo { //constructor public SplitPaneDemo() { //Create a new JFrame container. //Use the default border layout JFrame jfrm = new JFrame("Split Pane Demo"); //Give the frame an initial size jfrm.setSize(380, 150); //Terminate the program when the user closes the application jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //--Make two labels to show the split pane JLabel jlab = new JLabel(" Left side: ABCDEFGHIJKLMNOPQRSTUVWXYZ"); JLabel jlab2 = new JLabel(" Right side: ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //Set the minimum size for each label //This step is not technically needed to use a split pane, //but it enables the split pane resizing features to be //used to their maximum extent jlab.setMinimumSize(new Dimension(90, 30)); jlab2.setMinimumSize(new Dimension(90, 30)); //--Create a split pane JSplitPane jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, jlab, jlab2); //Code to get a list of component names in the console Component[] listComponents = jsp.getComponents(); String theList; for (Component myComponent: listComponents) { theList = myComponent.toString(); System.out.println(theList); } //Add the split pane to the content pane jfrm.getContentPane().add(jsp); //Display the frame jfrm.setVisible(true); } public static void main(String[] args) { //Create the frame on the event dispatching thread SwingUtilities.invokeLater(new Runnable(){ @Override public void run() { new SplitPaneDemo(); } }); } } ``` Is there any way I can change its color , so that it can really stand out? Thank you.

Original source

Related problems