⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 browsercontrol.java

📁 JAVA HelpGUI 1.1是一个在JAVA环境下帮助开发“帮助视图“菜单的组件库
💻 JAVA
字号:
/* * Based on Steven Spencer's Java Tip in JavaWorld: * http://www.javaworld.com/javaworld/javatips/jw-javatip66.html */package net.sourceforge.helpgui.util;import java.io.IOException;import java.net.URL;/*** A simple, static class to display an URL in the system browser.** Under Windows, this will bring up the default browser,* usually either Netscape or Microsoft IE. The default browser is* determined by the OS. This has been tested under: Windows 95/98/NT/2000.** Under MacOS, this will bring up the default browser.* The default browser is determined by the OS.* This has been tested under: n/a* * In other cases (and under Unix),* the system browser is hard-coded to be 'netscape'.* Netscape must be in your PATH for this to work. This has been* tested with the following platforms: AIX, HP-UX and Solaris.** Examples:* * BrowserControl.displayURL("http://www.javaworld.com")** BrowserControl.displayURL("file://c:\\docs\\index.html")** BrowserContorl.displayURL("file:///user/joe/index.html");* * Note - you must include the url type -- either "http://" or* "file://".*/public class BrowserControl {	/**	 * Display an URL in the system browser. If you want to display a	 * file, you must include the absolute path name.	 *	 * @param url the document's url (the url must start with either "http://"	 * or "file://").	 */	public static boolean displayURL(String url) {		// Opening a browser, even when running sandbox-restricted		// in JavaWebStart.		try {			Class serManClass = Class.forName("javax.jnlp.ServiceManager");			Class basSerClass = Class.forName("javax.jnlp.BasicService");			Class[] stringParam = {String.class};			Class[] urlParam = {URL.class};			Object basicService = serManClass.getMethod("lookup", stringParam)				.invoke(serManClass, new Object[] {"javax.jnlp.BasicService"});			basSerClass.getMethod("showDocument", urlParam)				.invoke(basicService, new Object[] {new URL(url)});			return true;		} catch(Exception e) {			// Not running in JavaWebStart or service is not supported.			// We continue with the methods below ...		}		String[] cmd = null;		switch(getPlatform()) {			case(WIN_ID):				return runCmdLine(replaceToken(WIN_CMDLINE, URLTOKEN, url));			case(MAC_ID):				return runCmdLine(replaceToken(MAC_CMDLINE, URLTOKEN, url));			default:				for (int i = 0; i<OTHER_CMDLINES.length; i++) {					if (runCmdLine( replaceToken(OTHER_CMDLINES[i], URLTOKEN, url),									replaceToken(OTHER_FALLBACKS[i], URLTOKEN, url)))						return true;				}        }		return false;	}	/**	 * Try to determine whether this application is running under Windows	 * or some other platform by examing the "os.name" property.	 *	 * @return the ID of the platform	 */	private static int getPlatform()	{		String os = System.getProperty("os.name");		if ( os != null && os.startsWith(WIN_PREFIX)) return WIN_ID;		if ( os != null && os.startsWith(MAC_PREFIX)) return MAC_ID;		return OTHER_ID;	}		private static String connectStringArray(String[] a) {		if (a == null) return null;		String s = "";		for (int i = 0; i<a.length; i++) {			if (i > 0) s += " ";			s += a[i];		}		return s;	}	private static String[] replaceToken(String[] target, String token, String replacement) {		if (null == target) return null;		String[] result = new String[target.length];		for(int i = 0; i<target.length; i++)			result[i] = target[i].replaceAll(token, replacement);		return result;	}	private static boolean runCmdLine(String[] cmdLine) {		return runCmdLine(cmdLine,null); 	}	private static boolean runCmdLine(String[] cmdLine, String[] fallBackCmdLine) {		try {			/*System.out.println(				"Trying to invoke browser, cmd='" +				connectStringArray(cmdLine) + "' ... ");*/			Process p = Runtime.getRuntime().exec(cmdLine);			if (null != fallBackCmdLine) {				// wait for exit code -- if it's 0, command worked,				// otherwise we need to start fallBackCmdLine.				int exitCode = p.waitFor();				if (exitCode != 0) {					/*System.out.println(exitCode);					System.out.println();*/					/*System.out.println(						"Trying to invoke browser, cmd='" +						connectStringArray(fallBackCmdLine) + "' ...");*/					Runtime.getRuntime().exec(fallBackCmdLine);				}			}			System.out.println();			return true;		} catch(InterruptedException e) {			System.out.println("Caught: " + e);		} catch(IOException e) {			System.out.println("Caught: " + e);		}				return false;	}		// This token is a placeholder for the actual URL	private static final String URLTOKEN = "%URLTOKEN%";		// Used to identify the windows platform.	private static final int WIN_ID = 1;	// Used to discover the windows platform.	private static final String WIN_PREFIX = "Windows";	// The default system browser under windows.	// Once upon a time:	//   for 'Windows 9' and 'Windows M': start	//   for 'Windows': cmd /c start	private static final String[] WIN_CMDLINE = {"rundll32", "url.dll,FileProtocolHandler", URLTOKEN};	// Used to identify the mac platform.	private static final int MAC_ID = 2;	// Used to discover the mac platform.	private static final String MAC_PREFIX = "Mac";	// The default system browser under mac.	private static final String[] MAC_CMDLINE = {"open", URLTOKEN};	// Used to identify the mac platform.	private static final int OTHER_ID = -1;	private static final String[][] OTHER_CMDLINES = {		// The first guess for a browser under other systems (and unix):		// Remote controlling mozilla (http://www.mozilla.org/unix/remote.html)		{"mozilla", "-remote", "openURL(" + URLTOKEN + ",new-window)"},		// The second guess for a browser under other systems (and unix):		// The RedHat skript htmlview		{"htmlview", URLTOKEN},		// The third guess for a browser under other systems (and unix):		// Remote controlling netscape (http://wp.netscape.com/newsref/std/x-remote.html)		{"netscape", "-remote", "openURL(" + URLTOKEN + ")"}	};		private static final String[][] OTHER_FALLBACKS = {				// Fallback for remote controlling mozilla:		// Starting up a new mozilla		{"mozilla", URLTOKEN},				// No fallback for htmlview		null,				// Fallback for remote controlling netscape:		// Starting up a new netscape		{"netscape", URLTOKEN}	};}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -