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/
Заранее спасибо!