Here you can find the source of generateProgressBarFor(Object... objs)
public static JProgressBar generateProgressBarFor(Object... objs)
//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.BoundedRangeModel; import javax.swing.JComponent; import javax.swing.JProgressBar; import javax.swing.event.AncestorListener; import javax.swing.plaf.ProgressBarUI; import java.awt.Container; import java.awt.Component; public class Main { public static JProgressBar generateProgressBarFor(Object... objs) { Container c = search(objs, Container.class); String[] name_value = search(objs, String[].class); BoundedRangeModel model = search(objs, BoundedRangeModel.class); Integer[] params = search(objs, Integer[].class); ProgressBarUI ui = search(objs, ProgressBarUI.class); JProgressBar pbar = (params == null || params.length > 3 || params.length < 1) ? new JProgressBar() : (params.length == 1 ? new JProgressBar(params[0]) : (params.length == 2 ? new JProgressBar(params[0], params[1]) : new JProgressBar(params[0], params[1], params[2]))); if (model != null) pbar.setModel(model);//www. ja va 2s . co m if (ui != null) pbar.setUI(ui); addJContainerListeners(pbar, objs); if (c != null) addToContainer(c, pbar); return pbar; } 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 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); } private static void addToContainer(Container c, Component element) { if (c == null) return; c.add(element); } 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); } }