Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Get the JFrame by getting the root 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);   } }