Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;

public class Main {
    public static void main(String args[]) {
        final JFrame frame = new JFrame();
        Container contentPane = frame.getContentPane();
        JButton b = new JButton("Hide for 5");
        ActionListener action = new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {
                frame.setVisible(false);
                TimerTask task = new TimerTask() {
                    public void run() {
                        frame.setVisible(true);
                    }
                };
                Timer timer = new Timer();
                timer.schedule(task, 5000);
            }
        };
        b.addActionListener(action);
        AncestorListener ancestor = new AncestorListener() {
            public void ancestorAdded(AncestorEvent e) {
                System.out.println("Added");
                dumpInfo(e);
            }

            public void ancestorMoved(AncestorEvent e) {
                System.out.println("Moved");
                dumpInfo(e);
            }

            public void ancestorRemoved(AncestorEvent e) {
                System.out.println("Removed");
                dumpInfo(e);
            }

            private void dumpInfo(AncestorEvent e) {
                System.out.println("\tAncestor: " + name(e.getAncestor()));
                System.out.println("\tAncestorParent: " + name(e.getAncestorParent()));
                System.out.println("\tComponent: " + name(e.getComponent()));
            }

            private String name(Container c) {
                return (c == null) ? null : c.getName();
            }
        };
        b.addAncestorListener(ancestor);
        contentPane.add(b, BorderLayout.NORTH);
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
}