Java笔记

4、Applet中使用JFrame

  Applet中不能直接添加JFrame,但是可以创建JFrame对象并显示,需要注意的是:不能设置-setDefaultCloseOperation(JFrame.Exit_ON_CLOSE);因为JFrame不能关闭Applet,Applet的生命周期由浏览器管理。

3、使用Google TTS播放语音

支持库:jl1.0.1.jar,用于声音播放

public void test(){
  try {
    URL url = new URL("http://translate.google.com/translate_tts?q=2008年5月12日14点28分,四川汶川发生8.0级地震&tl=zh");
    URLConnection connection = url.openConnection();
    connection.setRequestProperty("User-Agent",
							"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (LEXLOO) ");
    final InputStream is = connection.getInputStream();
    final Player player = new Player(is);
    EventQueue.invokeLater(new Runnable() {

      @Override
	   public void run() {
	     try {
		    player.play();
		    is.close();
		  } catch (Exception ex) {
		    ex.printStackTrace();
		  }
	   }
    });
  } catch (Exception ex) {
    ex.printStackTrace();
  }
}

2、让Java程序只运行一个实例

  在程序开始的时候执行 new SingleInstance(),就不会打开第二个实例。端口可以修改。

public class SingleInstance {
	private volatile boolean blocking = true;

	public SingleInstance() {
		new Checker();

		while (blocking) {
			try {
				TimeUnit.SECONDS.sleep(1);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

	private class Checker implements Runnable {
		private Thread thread = new Thread(this);

		private Checker() {
			thread.start();
		}

		@Override
		public void run() {
			try {
				Socket sock = new Socket("127.0.0.1", 17909);
				System.out.println("程序已经在运行");
				System.exit(0);
			} catch (Exception e) {
			}
			try {
				ServerSocket server = new ServerSocket(17909);
				blocking = false;

				while (true) {
					server.accept();
				}
			} catch (Exception e) {
			}
		}
	}
}

1、获取本机的Mac地址(JDK6)

  当前正好需要这个功能,在网上简单搜了下,都是通过os的方法,其实JDK6已经支持。修改下面代码也可以通过IP地址查找Mac地址。

	/**
	 * 获取本机Mac地址
	 * 
	 * @return mac地址
	 */
	private static String getMacAddress() {
		try {
			NetworkInterface ne = NetworkInterface.getByInetAddress(InetAddress.getLocalHost());

			byte[] macBytes = ne.getHardwareAddress();
			StringBuilder sb = new StringBuilder();
			for (byte b : macBytes) {
				sb.append(String.format("%02X", b));
				sb.append("-");
			}

			sb.deleteCharAt(sb.length() - 1);

			return sb.toString();
		} catch (SocketException e) {
			e.printStackTrace();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}

		return "";
	}

posted @ 2011-05-29 12:19  lexloo  阅读(524)  评论(0编辑  收藏  举报
ccc