Get the JFrame of a component
import java.awt.Color; import java.awt.Component; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class Main extends JFrame { public Main() { this.setSize(400, 100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(new FlowLayout(FlowLayout.CENTER)); JButton button = new JButton("Change Frame Color"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Component component = (Component) e.getSource(); JFrame frame = (JFrame) SwingUtilities.getRoot(component); frame.getContentPane().setBackground(Color.RED); } }); this.getContentPane().add(button); } public static void main(String[] args) { new Main().setVisible(true); } }