Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
//License from project: Open Source License 

import java.awt.event.ComponentListener;
import java.awt.event.ContainerListener;
import java.awt.event.FocusListener;
import java.awt.event.HierarchyBoundsListener;
import java.awt.event.HierarchyListener;
import java.awt.event.InputMethodListener;

import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseWheelListener;
import java.beans.PropertyChangeListener;
import java.beans.VetoableChangeListener;

import javax.swing.JComponent;

import javax.swing.event.AncestorListener;
import javax.swing.event.CaretListener;

import java.awt.Container;
import java.awt.Component;

import javax.swing.text.JTextComponent;

public class Main {
    private static void addJTextComponentListeners(JTextComponent c, Object... objs) {
        if (c == null)
            return;
        addJContainerListeners(c, objs);
        CaretListener caretListener = search(objs, CaretListener.class);
        InputMethodListener inputMethodListener = search(objs, InputMethodListener.class);
        if (caretListener != null)
            c.addCaretListener(caretListener);
        if (inputMethodListener != null)
            c.addInputMethodListener(inputMethodListener);
    }

    private static void addJContainerListeners(JComponent c, Object... objs) {
        if (c == null)
            return;
        addContainerListeners(c, objs);
        AncestorListener ancestorListener = search(objs, AncestorListener.class);
        VetoableChangeListener vetoableChangeListener = search(objs, VetoableChangeListener.class);
        if (ancestorListener != null)
            c.addAncestorListener(ancestorListener);
        if (vetoableChangeListener != null)
            c.addVetoableChangeListener(vetoableChangeListener);
    }

    public static <T extends Component> T search(String name, Component comp) {
        if (name.equals(comp.getName())) {
            return (T) comp;
        } else if (comp instanceof Container) {
            for (Component c : ((Container) comp).getComponents())
                if ((c = search(name, c)) != null)
                    return (T) c;
        }
        return null;
    }

    private static <T> T search(Object[] objs, Class c) {
        for (Object o : objs) {
            if (c.isInstance(o))
                return (T) o;
        }
        return null;
    }

    private static void addContainerListeners(Container c, Object... objs) {
        if (c == null)
            return;
        addComponentListeners(c, objs);
        ContainerListener containerListener = search(objs, ContainerListener.class);
        PropertyChangeListener propertyChangeListener = search(objs, PropertyChangeListener.class);
        if (containerListener != null)
            c.addContainerListener(containerListener);
        if (propertyChangeListener != null)
            c.addPropertyChangeListener(propertyChangeListener);
    }

    private static void addComponentListeners(Component c, Object... objs) {
        if (c == null)
            return;
        ComponentListener componentListener = search(objs, ComponentListener.class);
        FocusListener focusListener = search(objs, FocusListener.class);
        HierarchyBoundsListener hierarchyBoundsListener = search(objs, HierarchyBoundsListener.class);
        HierarchyListener hierarchyListener = search(objs, HierarchyListener.class);
        InputMethodListener inputMethodListener = search(objs, InputMethodListener.class);
        KeyListener keyListener = search(objs, KeyListener.class);
        MouseListener mouseListener = search(objs, MouseListener.class);
        MouseMotionListener mouseMotionListener = search(objs, MouseMotionListener.class);
        MouseWheelListener mouseWheelListener = search(objs, MouseWheelListener.class);
        if (componentListener != null)
            c.addComponentListener(componentListener);
        if (focusListener != null)
            c.addFocusListener(focusListener);
        if (hierarchyBoundsListener != null)
            c.addHierarchyBoundsListener(hierarchyBoundsListener);
        if (hierarchyListener != null)
            c.addHierarchyListener(hierarchyListener);
        if (inputMethodListener != null)
            c.addInputMethodListener(inputMethodListener);
        if (keyListener != null)
            c.addKeyListener(keyListener);
        if (mouseListener != null)
            c.addMouseListener(mouseListener);
        if (mouseMotionListener != null)
            c.addMouseMotionListener(mouseMotionListener);
        if (mouseWheelListener != null)
            c.addMouseWheelListener(mouseWheelListener);
    }
}