 <p>You might be able to use <code>UIManager.put("TabbedPane.contentAreaColor", new Color(255, 255, 0, 100));</code></p> <p><img src="https://i.stack.imgur.com/JGkv4.png" alt="screenshot"></p> <pre><code>import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TransparentTabbedPaneTest { public JComponent makeUI() { Color bgc = new Color(110, 110, 0, 100); Color fgc = new Color(255, 255, 0, 100); UIManager.put("TabbedPane.shadow", fgc); UIManager.put("TabbedPane.darkShadow", fgc); UIManager.put("TabbedPane.light", fgc); UIManager.put("TabbedPane.highlight", fgc); UIManager.put("TabbedPane.tabAreaBackground", fgc); UIManager.put("TabbedPane.unselectedBackground", fgc); UIManager.put("TabbedPane.background", bgc); UIManager.put("TabbedPane.foreground", Color.WHITE); UIManager.put("TabbedPane.focus", fgc); UIManager.put("TabbedPane.contentAreaColor", fgc); UIManager.put("TabbedPane.selected", fgc); UIManager.put("TabbedPane.selectHighlight", fgc); UIManager.put("TabbedPane.borderHightlightColor", fgc); JTabbedPane tabs = new JTabbedPane(); JPanel tab1panel = new JPanel(); tab1panel.setBackground(new Color(0, 220, 220, 50)); JPanel tab2panel = new JPanel(); tab2panel.setBackground(new Color(220, 0, 0, 50)); JPanel tab3panel = new JPanel(); tab3panel.setBackground(new Color(0, 0, 220, 50)); JCheckBox cb = new JCheckBox("setOpaque(false)"); cb.setOpaque(false); tab3panel.add(cb); tab3panel.add(new JCheckBox("setOpaque(true)")); tabs.addTab("Tab 1", tab1panel); tabs.addTab("Tab 2", tab2panel); tabs.addTab("Tab 3", new AlphaContainer(tab3panel)); JPanel p = new JPanel(new BorderLayout()) { private Image myBG = new ImageIcon(getClass().getResource("test.png")).getImage(); @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(myBG, 0, 0, getWidth(), getHeight(), this); } }; p.add(tabs); p.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); return p; } public static void main(String... args) { EventQueue.invokeLater(() -&gt; { JFrame f = new JFrame(); f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); f.getContentPane().add(new TransparentTabbedPaneTest().makeUI()); f.setSize(320, 240); f.setLocationRelativeTo(null); f.setVisible(true); }); } } //https://tips4java.wordpress.com/2009/05/31/backgrounds-with-transparency/ class AlphaContainer extends JComponent { private JComponent component; public AlphaContainer(JComponent component) { this.component = component; setLayout( new BorderLayout() ); setOpaque( false ); component.setOpaque( false ); add( component ); } /** * Paint the background using the background Color of the * contained component */ @Override public void paintComponent(Graphics g) { g.setColor( component.getBackground() ); g.fillRect(0, 0, getWidth(), getHeight()); } } </code></pre>