Java程序可以用Jflashplayer来播放swf,从而做到了Java中集成swf的效果。
这个方案按道理来说比较正统,缺点有两个
Jflashplayer并不完全支持swf的所有特性,只是有选择地支持,因此一些使用高级版本flash/flex开发的程序中用到的API可能得不到支持。
Jflashplayer价格相对来说比较贵,并不是所有的开发者都支付得起的。
/**
* MyFlash: 播放flash
*
* @author missingu
* By 2013.11.1
*/
package my.audio.swt;
import java.io.File;
import java.io.FileNotFoundException;
import javax.swing.JFrame;
import com.jpackages.jflashplayer.*;
public class MyFlash extends JFrame {
	/**
	*
	*/
	private static final long serialVersionUID = 1L;
	FlashPanel fPanel;
	public MyFlash() throws FileNotFoundException, JFlashLibraryLoadFailedException, JFlashInvalidFlashException {
		initialMyflash();
		File file = new File("dealerMap.swf");
		try {
			fPanel = new FlashPanel(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
// TODO: handle exception
		} catch (JFlashLibraryLoadFailedException e) {
// TODO: handle exception
			e.printStackTrace();
		} catch (JFlashInvalidFlashException e) {
// TODO: handle exception
			e.printStackTrace();
		}
		FlashPanel.setRequiredFlashVersion("6");
		fPanel.setVariables("myGreeting=hi&myNumber=1&myVar=good%20job");
		fPanel.setBounds(0, 0, 800, 600);
		fPanel.play();
		this.add(fPanel);
//this.show(true);
		this.setVisible(true);
		fPanel.play(); // 要是没有,可能不直接显示
	}
	public static void main(String[] args) throws FileNotFoundException, JFlashLibraryLoadFailedException, JFlashInvalidFlashException {
		new MyFlash();
	}
	public void initialMyflash() {
		this.setSize(800, 600);
//this.isVisible() ;
		this.setResizable(false); // 禁止窗口最大化
	}
}ps:
jflashpanel 下载地址:
http://download.csdn.net/detail/missingu1314/6501967
另外可以采用Java的官方开发团队提供了的DIC (JDesktop Integration Components)软件包,可以在Java程序中直接集成操作系统的浏览器(比如IE)来实现浏览器功能,因此,首先在程序中使用JDIC集成一个NativeBrowser,然后在NativeBrowser中播放含swf文件的网页,也同样可以满足这个需求。