java - javaFX launch() not working -
java - javaFX launch() not working -
im trying set video play in jframe using javafx.
but 1 time phone call launch() function set javafx , play video, next error
exception in application constructor exception in thread "awt-eventqueue-0" java.lang.runtimeexception: unable build application instance: class mvap.mvap_playvideo
does know i'm doing wrong?
public mvap_playvideo() { mvap.checkjframe(); //ensure mvap.jframe still exists, recreate if doesn't jframe = mvap.jframe; //set jframe mvap.jframe mvap.clearframe(); //clear components in mvap.jframe url = mvap.url; //retrieve media url mvap.url initcomponents(); //set new jframe components //get video dimensions //set jframe dimensions video dimensions //jframe.setsize(); launch(); //launch video. programme stops working here. } @override public void start(final stage stage) { final jfxpanel fxpanel = new jfxpanel(); //create new panel. after launch();, it's meant reach here media media = new media(url); //create new mesia final mediaplayer player = new mediaplayer(media); //create new media player //set media player position fxpanel.setscene(new scene(new group(new mediaview(player)), 300, 200)); //set dimensions media dimensions jframe.add(fxpanel); //add panel frame jframe.setvisible(true); //set frame visible player.play(); //play media } this entire class
package mvap; import javafx.application.application; import javafx.embed.swing.jfxpanel; import javafx.scene.*; import javafx.scene.media.*; import javafx.stage.stage; import javax.swing.jframe; public class mvap_playvideo extends application { public static jframe jframe = null; //my jframe string url = null; //media url public mvap_playvideo() { mvap.checkjframe(); //ensure mvap.jframe still exists, recreate if doesn't jframe = mvap.jframe; //set jframe mvap.jframe mvap.clearframe(); //clear components in mvap.jframe url = mvap.url; //retrieve media url mvap.url initcomponents(); //set new jframe components //get video dimensions //set jframe dimensions video dimensions //jframe.setsize(); launch(); //launch video. programme stops working here. } @override public void start(final stage stage) { final jfxpanel fxpanel = new jfxpanel(); //create new panel. after launch();, it's meant reach here media media = new media(url); //create new mesia final mediaplayer player = new mediaplayer(media); //create new media player //set media player position fxpanel.setscene(new scene(new group(new mediaview(player)), 300, 200)); //set dimensions media dimensions jframe.add(fxpanel); //add panel frame jframe.setvisible(true); //set frame visible player.play(); //play media } private void initcomponents() { jlabel2 = new javax.swing.jlabel(); jlabel1 = new javax.swing.jlabel(); jlabel2.setfont(new java.awt.font("tahoma", 0, 24)); // noi18n jlabel2.settext("watch video"); jlabel1.setforeground(new java.awt.color(0, 0, 255)); jlabel1.settext("back"); jlabel1.addmouselistener(new java.awt.event.mouseadapter() { public void mouseclicked(java.awt.event.mouseevent evt) { jlabel1mouseclicked(evt); } }); javax.swing.grouplayout layout = new javax.swing.grouplayout(jframe.getcontentpane()); jframe.getcontentpane().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addcontainergap() .addcomponent(jlabel2) .addpreferredgap(javax.swing.layoutstyle.componentplacement.related, 225, short.max_value) .addcomponent(jlabel1) .addcontainergap()) ); layout.setverticalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addcontainergap() .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addcomponent(jlabel1) .addcomponent(jlabel2, javax.swing.grouplayout.preferred_size, 48, javax.swing.grouplayout.preferred_size)) .addcontainergap(241, short.max_value)) ); jframeadd(); jframe.pack(); }// </editor-fold> private void jframeadd() { jframe.add(jlabel2); jframe.add(jlabel1); } private void jlabel1mouseclicked(java.awt.event.mouseevent evt) { mvap.clearframe(); new mvap_memberoptions(mvap.mvapdatabase,mvap.accesslevel); } // variables declaration - not modify private javax.swing.jlabel jlabel1; private javax.swing.jlabel jlabel2; // end of variables declaration }
the application.launch() method used launch standalone javafx application.
but trying integrate javafx content swing application. please read official oracle documentation:
integrating javafx swing applications
and more:
javafx-swing interoperability
if want add together javafx content swing application, have utilize wrapper jfxpanel add together swing container, , have init javafx panel javafx thread this:
jframe frame = new jframe("swing , javafx"); final jfxpanel fxpanel = new jfxpanel(); frame.add(fxpanel); platform.runlater(new runnable() { @override public void run() { // method invoked on javafx thread scene scene = ...; // create scene fxpanel.setscene(scene); } }); java swing javafx
Comments
Post a Comment