Java tutorial
//package com.java2s; /* * Copyright (c) 2002 and later by MH Software-Entwicklung. All Rights Reserved. * * JTattoo is multiple licensed. If your are an open source developer you can use * it under the terms and conditions of the GNU General Public License version 2.0 * or later as published by the Free Software Foundation. * * see: gpl-2.0.txt * * If you pay for a license you will become a registered user who could use the * software under the terms and conditions of the GNU Lesser General Public License * version 2.0 or later with classpath exception as published by the Free Software * Foundation. * * see: lgpl-2.0.txt * see: classpath-exception.txt * * Registered users could also use JTattoo under the terms and conditions of the * Apache License, Version 2.0 as published by the Apache Software Foundation. * * see: APACHE-LICENSE-2.0.txt */ import java.awt.*; import java.lang.reflect.Method; import javax.swing.*; public class Main { private static Double javaVersion = null; public static boolean isActive(JComponent c) { if (c == null) { return false; } boolean active = true; if (c instanceof JInternalFrame) { active = ((JInternalFrame) c).isSelected(); } if (active) { Container parent = c.getParent(); while (parent != null) { if (parent instanceof JInternalFrame) { active = ((JInternalFrame) parent).isSelected(); break; } parent = parent.getParent(); } } if (active) { active = isFrameActive(c); } return active; } public static boolean isFrameActive(JComponent c) { if (c == null) { return false; } if (c.getTopLevelAncestor() instanceof Window) { return isWindowActive((Window) c.getTopLevelAncestor()); } return true; } public static boolean isWindowActive(Window window) { if (getJavaVersion() >= 1.4) { try { Class paramTypes[] = null; Object args[] = null; Method m = window.getClass().getMethod("isActive", paramTypes); Boolean b = (Boolean) m.invoke(window, args); return b.booleanValue(); } catch (Exception ex) { } } return true; } public static double getJavaVersion() { if (javaVersion == null) { try { String ver = System.getProperties().getProperty("java.version"); String version = ""; boolean firstPoint = true; for (int i = 0; i < ver.length(); i++) { if (ver.charAt(i) == '.') { if (firstPoint) { version += ver.charAt(i); } firstPoint = false; } else if (Character.isDigit(ver.charAt(i))) { version += ver.charAt(i); } } javaVersion = new Double(version); } catch (Exception ex) { javaVersion = new Double(1.3); } } return javaVersion.doubleValue(); } }