用java的awt包或swing包做出来的画面实在是不敢恭维,因此大家有没有考虑过在java图形化界面中插入flash的,那样做出来的画面肯定很cool!
但是我也不知道怎样插入!
大家有什么好的想法么?

解决方案 »

  1.   

    用java的awt包或swing包做出来的画面实在是不敢恭维
    ======================
    说这种话不觉得没水准吗?
    没有调查就乱发言
    你可以看看现在有多少系统基于AWT/Swing
      

  2.   

    我觉得AWT/Swing做出来的界面很好看啊 不知道搂主的审美观是不是太与众不同了
      

  3.   

    个人审美观不同而已,大家都各有各的的爱好嘛。不过加flash到是不过的提议,比如在界面出来前先来个欢迎动画好象也不错,要是有高手做过的话,希望能指点下咯
      

  4.   

    对,一楼批评的是!下次我说话的时候一定会加个 “本人以为” 这几个字!
    不过在我认为“swt和swing相跟用vb做出来的程序比确实是有点差距!”
    希望大家能给个好点子,考虑一下怎样在java中插入flash动画!
      

  5.   

    import org.eclipse.swt.*;
    import org.eclipse.swt.graphics.*;
    import org.eclipse.swt.widgets.*;
    public class Snippet141 {
    static Display display;
    static Shell shell;
    static GC shellGC;
    static Color shellBackground;
    static ImageLoader loader;
    static ImageData[] imageDataArray;
    static Thread animateThread;
    static Image image;
    static final boolean useGIFBackground = false;
    public static void main(String[] args) {
    display = new Display();
    shell = new Shell(display);
    shell.setSize(300, 300);
    shell.open();
    shellGC = new GC(shell);
    shellBackground = shell.getBackground();
    FileDialog dialog = new FileDialog(shell);
    dialog.setFilterExtensions(new String[] {"*.gif"});
    String fileName = dialog.open();
    if (fileName != null) {
    loader = new ImageLoader();
    try {
    imageDataArray = loader.load(fileName);
    if (imageDataArray.length > 1) {
    animateThread = new Thread("Animation") {
    public void run() {
    /* Create an off-screen image to draw on, and fill it with the shell background. */
    Image offScreenImage = new Image(display, loader.logicalScreenWidth, loader.logicalScreenHeight);
    GC offScreenImageGC = new GC(offScreenImage);
    offScreenImageGC.setBackground(shellBackground);
    offScreenImageGC.fillRectangle(0, 0, loader.logicalScreenWidth, loader.logicalScreenHeight);
    try {
    /* Create the first image and draw it on the off-screen image. */
    int imageDataIndex = 0;
    ImageData imageData = imageDataArray[imageDataIndex];
    if (image != null && !image.isDisposed()) image.dispose();
    image = new Image(display, imageData);
    offScreenImageGC.drawImage(
    image,
    0,
    0,
    imageData.width,
    imageData.height,
    imageData.x,
    imageData.y,
    imageData.width,
    imageData.height);
    /* Now loop through the images, creating and drawing each one
    * on the off-screen image before drawing it on the shell. */
    int repeatCount = loader.repeatCount;
    while (loader.repeatCount == 0 || repeatCount > 0) {
    switch (imageData.disposalMethod) {
    case SWT.DM_FILL_BACKGROUND:
    /* Fill with the background color before drawing. */
    Color bgColor = null;
    if (useGIFBackground && loader.backgroundPixel != -1) {
    bgColor = new Color(display, imageData.palette.getRGB(loader.backgroundPixel));
    }
    offScreenImageGC.setBackground(bgColor != null ? bgColor : shellBackground);
    offScreenImageGC.fillRectangle(imageData.x, imageData.y, imageData.width, imageData.height);
    if (bgColor != null) bgColor.dispose();
    break;
    case SWT.DM_FILL_PREVIOUS:
    /* Restore the previous image before drawing. */
    offScreenImageGC.drawImage(
    image,
    0,
    0,
    imageData.width,
    imageData.height,
    imageData.x,
    imageData.y,
    imageData.width,
    imageData.height);
    break;
    }
    imageDataIndex = (imageDataIndex + 1) % imageDataArray.length;
    imageData = imageDataArray[imageDataIndex];
    image.dispose();
    image = new Image(display, imageData);
    offScreenImageGC.drawImage(
    image,
    0,
    0,
    imageData.width,
    imageData.height,
    imageData.x,
    imageData.y,
    imageData.width,
    imageData.height);
    /* Draw the off-screen image to the shell. */
    shellGC.drawImage(offScreenImage, 0, 0);
    /* Sleep for the specified delay time (adding commonly-used slow-down fudge factors). */
    try {
    int ms = imageData.delayTime * 10;
    if (ms < 20) ms += 30;
    if (ms < 30) ms += 10;
    Thread.sleep(ms);
    } catch (InterruptedException e) {
    }
    /* If we have just drawn the last image, decrement the repeat count and start again. */
    if (imageDataIndex == imageDataArray.length - 1) repeatCount--;
    }
    } catch (SWTException ex) {
    System.out.println("There was an error animating the GIF");
    } finally {
    if (offScreenImage != null && !offScreenImage.isDisposed()) offScreenImage.dispose();
    if (offScreenImageGC != null && !offScreenImageGC.isDisposed()) offScreenImageGC.dispose();
    if (image != null && !image.isDisposed()) image.dispose();
    }
    }
    };
    animateThread.setDaemon(true);
    animateThread.start();
    }
    } catch (SWTException ex) {
    System.out.println("There was an error loading the GIF");
    }
    }
    while (!shell.isDisposed()) {
    if (!display.readAndDispatch()) display.sleep();
    }
    display.dispose();
    }
    }
      

  6.   

    java程序Swing/Awt
    提供皮肤扩展的功能,感觉还是挺好的
    VB作出的东西,说实话,我还真没看出好看来
    可能真是审美观不同
      

  7.   

    发这贴的人对JAVA了解不深,请原谅这小伙子,对一个无知少年请大家多担待