jFlashPlayer не работает со стеклом, Java

Я работаю с jFlashPlayer (в настоящее время прекращено VersaEdge Software).

Я отображаю FlashPanel в jWindow и хотел бы поместить поверх него стеклянную панель, чтобы рисовать поверх изображений flash, но glassPane НЕ работает, когда FlashPanel видима. Стеклянная панель отлично работает, когда FlashPanel не видна / не активирована.

Соответствующие части кода следующие:

public displayWindow() throws AWTException{

    showOnScreen(1, this);

    createFlashPanel();

    glass = new JPanel()
    {
        public void paintComponent(Graphics g) 
        {
            g.setColor(Color.RED);
            g.fillOval(point.x, point.y, 10, 10);
        }
    };

    glass.setOpaque(true);
    this.setGlassPane(glass);
    glass.setVisible(true);
}

где

void createFlashPanel() {
    com.jpackages.jflashplayer.FlashPanel.installFlash("6");
    String flashVersionRequired = "9";
    try {
        String flashFilePath = "FarmacistDispensaryWS.swf";                                
        if (!com.jpackages.jflashplayer.FlashPanel.hasFlashVersion("9")) {
            flashFilePath = "FarmacistDispensaryWS.swf";        
            flashVersionRequired = "6";
        }
            com.jpackages.jflashplayer.FlashPanel.setRequiredFlashVersion(flashVersionRequired);

    FlashPanel = new FlashPanel(new File(flashFilePath));    
    } catch (JFlashLibraryLoadFailedException e) {            
        exitErrorr("A required library (DLL) is missing or damaged.");
    } catch (FileNotFoundException e) {
        exitErrorr("Failed to find SWF file specified.");
    } catch (JFlashInvalidFlashException e) {
        exitErrorr("Required version " + flashVersionRequired + " of Flash is not installed.");
        }

    this.getContentPane().add(FlashPanel, BorderLayout.CENTER);

    FlashPanel.setFlashCallObject(this);        

    FlashPanel.addFlashPanelListener(this);

    FlashPanel.setVariables("myGreeting=hi&myNumber=1&myVar=good%20job");    
}

(который взят непосредственно из предоставленного ими примера) и

public static void showOnScreenn( int screen, displayWindow displayWindow )
{
    GraphicsEnvironment ge = GraphicsEnvironment
        .getLocalGraphicsEnvironment();
    GraphicsDevice[] gs = ge.getScreenDevices();
    if( screen > -1 && screen < gs.length )
    {
        gs[screen].setFullScreenWindow(displayWindow);
    }
    else if( gs.length > 0 )
    {
        gs[0].setFullScreenWindow( displayWindow );
    }
    else
    {
        throw new RuntimeException( "No Screens Found" );
    }
}

Этот код работает на двух мониторах. Один монитор для управления флэш-файлом (код не показан), а другой (этот) для его отображения. GlassPane отлично работает на другом мониторе и работает на этом мониторе, если FlashPanel не запущен / не виден.

Флэш-файл работает нормально и работает, как и ожидалось, с предоставленным кодом - это не моя проблема здесь.

Копию всех вспомогательных файлов для jFlashPlayer (библиотеки и т. Д.) Можно найти по адресу http://java-flash-player-jflashplayer.soft32.com/

Заранее спасибо!

0 ответов

Другие вопросы по тегам