Oracle Mix & JavaFX

Oracle Mix provides social networking, idea sharing, groups and more for the Oracle community.
You can find two JavaFX groups at Oracle Mix:
- Enterprise JavaFX
- JavaFX geeks and newbies
see [https://mix.oracle.com/|https://mix.oracle.com/]

I think JavaFX as a concept for client side programming is powerful one. I mean you don't really expect for enterprise applications any one would need to include rich multimedia so I think there swing alone will suffice. But there is myriad of non-enterprise applications that can fully utilize JavaFX in combination to Java like games, e-learning, simulations, online content, etc...
Now if Oracle decides to enter in that spectrum they'd better support JavaFX since it has cost SUN already so much and new owners should be reluctant just to drop all that investment. However what ever will happen Oracle should inform us in very short time what strategies they have in mind since keeping silent now is the worst that they could do.
Already developers are reluctant to invest any time in any technology they are not absolutely sure it will become the next killer apps driver and instead will focus on most marketed and demanded ones. Reluctance of early adopters would mean certain death to JavaFX since it already lags behind its competitors and loosing any more time would mean loosing lots of customers to them. And since multimedia business is increasingly becoming a war between platforms not languages (which all have similar concepts, x and y coordinates, frames, tweening...) Java is in a big advantage here.
By the way Oracle established a path recently, they do not buy anything without having tried it themselves before that, just like with Application Server after which they bought Weblogic which is superior to their own product. Similary if and it's just if they plan to enter multimedia they will never buy Adobe without gaining some experience before that in similar line of product just like JavaFX provides.

Similar Messages

  • Networking via Oracle Mix

    I just discovered Oracle Mix! It is really cool, because it lets you create or join groups, connect with other peers, invite other members, discuss topics, share your ideas, add your comments, run surveys...it even lets you chat with existing members!
    So I just created a new Mix group for us, called QA / Testing Technology Center, and you can find it here https://mix.oracle.com/groups/12932
    I hope to see you there, and of course....let me know if you think that we should change the name for our Mix group.

    This might help if you're an XP user.
    Use your BT Home Hub - Use it as a print server - Windows XP guide
    Sunday 03 December 2006
     Have you ever wondered what that USB port on your BT Home Hub was for? Well it turns out that you can use it to connect a printer to and therefore turning you BT Home Hub into a print server.
    For some reason BT don't seem to share this information easily, I don't know why though as personally I think it's another selling point for them. The only reason I can think of is that they don't want to support it.
    To set this up, follow the below (Windows Vista users, click here):
    1) Connect your printer to the USB port on the BT Home Hub
    2) Start the Add New Printer Wizard
    3) Select to Add a local printer and make sure that the automatically detect option is unticked
    4) Click Next
    5) Select create a new port and select Standard TCP/IP port from the list
    6) Click Next
    7) Click Next
    8) Enter 192.168.1.253 in the printer name field and the port name will automatically be completed
    9) Click Next
    10) Select Custom and click the settings button
    11) Select LPR
    12) Select LPR Byte Counting Enabled
    13) Enter the Queue Name as LPT1
    14) Click OK
    15) Click Next
    16) Click Finish
    17) Either select your printer from the list or insert the printer driver CD and click have disk
    18) Click Next
    19) Enter your printer name and select if you want it to be your default printer
    20) Click Next
    21) Select if you want to share your printer
    22) Click Next
    23) Print a Test Page
    24) Click Next
    That's it, you should now be able to print to a USB printer connected to your BT Home Hub.

  • How can I connect to my database ORACLE from JavafX?

    Hi! ¿Anybody have a example to learn how could connect my ORACLE database from my javafx application?

    Just use JDBC like you do in a regular Java program.
    Either you translate the code to JavaFX (creating Java objects, etc.) or you do a Java layer to simplify access.

  • New Oracle Site Replaces ALM's Ospace Forum - Please go to Oracle Mix

    Hi Everyone!
    In case you haven't heard, there is a new official Oracle site that replaces our ALM Ospace Forum.
    This new site is even more dynamic than our Ospace Forum, and can be accessed using the link below:
    https://mix.oracle.com/
    I look forward to seeing you all on Mix!
    Take care,
    Ann

    Hi Everyone!
    In case you haven't heard, there is a new official Oracle site that replaces our ALM Ospace Forum.
    This new site is even more dynamic than our Ospace Forum, and can be accessed using the link below:
    https://mix.oracle.com/
    I look forward to seeing you all on Mix!
    Take care,
    Ann

  • JavaFX as a SaaS/ How good is it for Client-Server work?

    I was under the impression that FX could be used to produce a Client-Server application as well as SaaS.
    a member of another forum said "I'm sure you meant to say "Desktop". JavaFX will not be making inroads on the web as a client-side technology."
    To which I said
    There have been examples of FX used with EE
    http://www.oracle.com/technetwork/java/javafx/samples/index.html
    http://docs.oracle.com/javafx/2/overview/jfxpub-overview.htm
    Sales Dashboard (DataApp)
    DataApp is a client-server application for a fictional global automobile company called Henley Car Sales. Automobile sales are simulated on an EJB server using JavaDB, and the data is available via Derby and a RESTful web service. The client demonstrates a variety of data presentations by using a mix of FXML and JavaFX.
    I thought originally that JavaFX was "Desktop" only also, until I found this example. I couldn't get it to run due to some weird Database line read issue that others also had. I'm not sure if this is now due to FX's integration, or if this was something new, but I believe I have seen another FX client-server app as well.
    I'm not that familiar with the client-server side of Java yet, so if you have other Information I would like to know, because I am looking to design a Client-Server app with FX, and I don't see why it would be an issue, unless there are huge limitations."
    He ended up saying "Those are still desktop apps. Sure, they are client-server in that they connect to a remote database. But they are still traditional fat-client apps rather than web-based thin-client SAAS web applications which, these days, most people will think of when you say "client".
    My point is to be more precise when you use the word "client".
    But if your point is just that JavaFX is taking over from Swing for the limited areas in which Swing is used, I have no insight into that area."
    Now I don't really like attitudes when I get my question answered, but the high and mighty needs to stop. It clearly says Client-Server so I don't know why it's being denounced by this dude who thinks he obviously knows better.
    Anyways he talks about it only being able to connect to a DB, to which it says it uses EE tech such as EBJ, Restful, and Derby, so that's more than just DB right(I don't know since I havent' learned that yet)?
    It seems as if he's saying that only EE code can go up on a server? Or can SE code go up there as well?
    I'm looking to design a SaaS software with FX, so if this isnt' possible I would like to know possible other options(or just having all of the gui work on the client, and the rest on the backend)???
    Thanks!
    ~KZ
    Edited by: KonradZuse on Apr 30, 2013 11:26 AM

    This response is not a tutorial, I hope it gives you some verbiage to use in further searches.
    SaaS to me means that the service is running on the server. If you have the server and permission to run java apps there then you can use Java FX by having the server shuttle requests to the Java FX app. But this is probably not the intent of Saas (it would be more appropriate to use a java implemented web service).
    If you are using Netbeans then it is very easy to create demo projects; use "File/New Project" to run them on your local computer.
    Example File/New Project/Java Web/Web Application will give you a hello world web site very quickly. This will 1) start either tomcat or glassfish as the server. 2) launch an html page with "hello world". then you can use java script to talk with the server via ajax. Using this approach you are going to need to study JSP or J2EE stuff.
    After this is running you could start one of the Java Fx examples in Netbeans: File / New Project / Samples / WebViewBrowser. This will start a javaFX app that acts like a browser and runs on the client.
    So, start the "hello world" app in netbeans by right clicking it in the project pain and selecting "debug". Then start the webviewBrowser app the same way to load that web page that has "hello world" in it as all browsers do. In the WebviewBrowser (which is java fx) you can get at the javascript in the web page and do all kinds of stuff. You'll need to search for webviewBrowser examples.
    The above all assumes a Netbeans solution. But, as you probably know, there are no rules. The server can be in C++ and the client in C (or any other language). The server and client usally communicate via http or tcp. So you could have a server written in java (maybe J2ee or you can rewrite a http server from scratch which isn't that hard - search for "HttpServletRequest and HttpSession" ) and the client can be in Java FX (where the Java FX talks directly with the server via http (no javascript or web page in the middle) again there are probably hundreds of libraries to talk to a http server).
    I use HttpServletRequest and HttpSession on the server side with MySQL and xml. On the client I use javaScript but I am moving to a strictly Java FX solution. This will give me close to 100% java on both sides and for my purposes this will work. (I may need a little html in the middle for drag and drop installation.) I am hoping that work continues with porting Java FX to most devices: Android, IOS, WinPhone. It is already on Linux, Windows Desktops and Mac.
    Edited by: KevinPas on May 1, 2013 9:50 AM
    Edited by: KevinPas on May 1, 2013 9:56 AM

  • Run a JavaFX Application 2.1 in Ubuntu

    Hello, I'm trying run my javafx 2.1 application in ubuntu ,
    I see : http://docs.oracle.com/javafx/2.0/release_notes_linux/jfxpub-release_notes_linux.htm
    Installation -> 2.Extract the SDK files from the zip file to a directory on your local file system.
    but i not know javafx 2.1 runtime for ubuntu at run configuration .
    My environment is:
    OS: ubuntu 11.10 - 32 bit
    jdk: jdk1.7.0_03 - 32bit
    javafx: JavaFX 2.1 build b17
    Thank's for our help.

    Do the sample applications run for you when you click the Launch Sample links?
    http://www.oracle.com/technetwork/java/javafx/samples/index.html
    If so, then the issue is probably with your packaging rather than your runtime.
    I suggest you turn on tracing and debug it, see here for information:
    http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-Desktop/html/plugin.html#gcexdf
    To get assistance, you need to completely answer all of the questions lgringo asked, especially the bit related ones, provide the 2.1 build number, your operating system version etc, provide sample non-working code (java/html/jnlp...), describe exactly the steps used to build the application so it can be repeated, provide the error message you get for each browser, provide debug level console traces, etc.
    My guess is that EITHER you have the architecture bits mixed up (64 bit Java/JavaFX installed, but using 32 bit browsers) OR you will end up filing a bug request http://javafx-jira.kenai.com which includes the above information, in which case igor or somebody from the JavaFX deployment team may be able to help you.

  • Deployment of JavaFX Web application on client machine(Windows OS.)

    Problem Statement:
    Deployment of JavaFX Web application on client machine(Windows OS.)
    Error: unable to load the native libarary(JNI Windows dll) i.e. throws java.lang.UnsatisfiedLinkError exception.
    Problem Description:
    I have create the JavaFX application which have dependency on Native library written in Java Native Interface(JNI).
    When the application is deployed on Apache 6.0 Tomcat Server(Copied .html file *.jnlp file and .jar file) and when client machine hit the html page in internet explorer version 8.0 its throws the following error(java.lang.UnsatisfiedLinkError: no JNIHelloWorld in java.library.path)
    Note:
    I have created the jar file which have my "JNIHelloWorld' native library dll in root directory. I have signed the jar with same signature which i have used for signing for my application Jar file.
    I have mentioned the native library jar in JNLP file resource keyword as follows:
    <resources os=Windows>
    <nativelib href="JNIHelloWorld.jar" download="eager" />
    </resources>
    The complete jnlp file content is in "JavaFXApplication.jnlp file:" section below.
    The description of error is as follows:
    Match: beginTraversal
    Match: digest selected JREDesc: JREDesc[version 1.6+, heap=-1--1, args=null, href=http://java.sun.com/products/autodl/j2se, sel=false, null, null], JREInfo: JREInfo for index 0:
    platform is: 1.7
    product is: 1.7.0_07
    location is: http://java.sun.com/products/autodl/j2se
    path is: C:\Program Files\Java\jre7\bin\javaw.exe
    args is: null
    native platform is: Windows, x86 [ x86, 32bit ]
    JavaFX runtime is: JavaFX 2.2.1 found at C:\Program Files\Java\jre7\
    enabled is: true
    registered is: true
    system is: true
         Match: ignoring maxHeap: -1
         Match: ignoring InitHeap: -1
         Match: digesting vmargs: null
         Match: digested vmargs: [JVMParameters: isSecure: true, args: ]
         Match: JVM args after accumulation: [JVMParameters: isSecure: true, args: ]
         Match: digest LaunchDesc: http://10.187.143.68:8282/KPIT/JavaFXApplication20.jnlp
         Match: digest properties: []
         Match: JVM args: [JVMParameters: isSecure: true, args: ]
         Match: endTraversal ..
         Match: JVM args final:
         Match: Running JREInfo Version match: 1.7.0.07 == 1.7.0.07
         *Match: Running JVM args match: have:<> satisfy want:<>*
    *java.lang.UnsatisfiedLinkError: no JNIHelloWorld in java.library.path*
    *     at java.lang.ClassLoader.loadLibrary(Unknown Source)*
    *     at java.lang.Runtime.loadLibrary0(Unknown Source)*
    *     at java.lang.System.loadLibrary(Unknown Source)*     at javafxapplication20.JavaFXApplication20.<clinit>(JavaFXApplication20.java:41)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
         at java.lang.reflect.Constructor.newInstance(Unknown Source)
         at java.lang.Class.newInstance0(Unknown Source)
         at java.lang.Class.newInstance(Unknown Source)
         at com.sun.javafx.applet.FXApplet2.init(FXApplet2.java:63)
         at com.sun.deploy.uitoolkit.impl.fx.FXApplet2Adapter.init(FXApplet2Adapter.java:207)
         at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Java Plug-in 10.7.2.11
    Using JRE version 1.7.0_07-b11 Java HotSpot(TM) Client VM
    User home directory = C:\Users\io839
    Please find my native library code and JavaFX application code:
    Native library JNI Code:
    JavaFXApplication.java:
    JNIEXPORT jstring JNICALL Java_javafxapplication_SampleController_printString(JNIEnv *env, jobject envObject)
         string str = "hello JNI";
         jstring jniStr = env->NewStringUTF(str.c_str());
         return jniStr;
    JavaFX Application code:
    JavaFXApplication.java:
    package javafxapplication;
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    public class JavaFXApplication extends Application {
    @Override
    public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
    Scene scene = new Scene(root);
    stage.setScene(scene);
    stage.show();
    * The main() method is ignored in correctly deployed JavaFX application.
    * main() serves only as fallback in case the application can not be
    * launched through deployment artifacts, e.g., in IDEs with limited FX
    * support. NetBeans ignores main().
    * @param args the command line arguments
    public static void main(String[] args) {
    launch(args);
    static{
    System.loadLibrary("JNIHelloWorld");
    SampleController.java file:
    package javafxapplication;
    import java.net.URL;
    import java.util.ResourceBundle;
    import javafx.event.ActionEvent;
    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;
    import javafx.scene.control.Label;
    public class SampleController implements Initializable {
    @FXML
    private Label label;
    private native String printString();
    @FXML
    private void handleButtonAction(ActionEvent event) {
    System.out.println("You clicked me!");
    String str = printString();
    label.setText(str);
    @Override
    public void initialize(URL url, ResourceBundle rb) {
    // TODO
    //String str = printString();
    JavaFXApplication.jnlp file:
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="JavaFXApplication.jnlp">
    <information>
    <title>JavaFXApplication20</title>
    <vendor>io839</vendor>
    <description>Sample JavaFX 2.0 application.</description>
    <offline-allowed/>
    </information>
    <resources>
    <jfx:javafx-runtime version="2.2+" href="http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp"/>
    </resources>
    <resources>
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
    <jar href="JavaFXApplication.jar" size="20918" download="eager" />
    </resources>
    <resources os=Windows>
    <nativelib href="JNIHelloWorld.jar" download="eager" />
    </resources>
    <security>
    <all-permissions/>
    </security>
    <applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="JavaFXApplication" >
    <param name="requiredFXVersion" value="2.2+"/>
    </applet-desc>
    <jfx:javafx-desc width="800" height="600" main-class="javafxapplication.JavaFXApplication" name="JavaFXApplication" />
    <update check="always"/>
    </jnlp>

    No problem.
    Make sure your resources are set at the proper location. Could be that tje jni.jar is under a 'lib' folder?
    Normally you don't have to worry about deployment a lot if you are using like Netbeans 7.2 or higher.
    When you press 'Clean and build' it creates your deployed files in the 'dist' folder.
    You can change specification by adapting the build.xml file.
    Of course lot of different possibilities are available for deployment!
    You can find lot of info here:
    [http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm|http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm]
    Important to know is if you want to work with
    - a standalone application (self-contained or not)
    - with webstart
    - or with applets
    (In my case I'm using webstart, but also Self-Contained Application Packaging (jre is also installed!)

  • Call a Web Service from JavaFX running als WebStart or embed in a Browser

    Calling a Web Service from a JavaFX running as a application all is fine.
    Wenn run the same JavaFX as WebStart or Browser embed I get a runtime exception:
    =================================
    Java-Plug-in 10.7.2.10
    JRE-Version verwenden 1.7.0_07-b10 Java HotSpot(TM) Client VM
    Benutzer-Home-Verzeichnis = C:\Users\Olaf
    c: Konsolenfenster löschen
    f: Objekte in Finalisierungs-Queue finalisieren
    g: Garbage Collect
    h: Diese Hilfemeldung anzeigen
    l: Class Loader-Liste ausgeben
    m: Speicherauslastung drucken
    o: Logging auslösen
    q: Konsole ausblenden
    r: Policy-Konfiguration neu laden
    s: System- und Deployment-Eigenschaften ausgeben
    t: Threadliste ausgeben
    v: Thread-Stack ausgeben
    x: Class Loader-Cache leeren
    0-5: Trace-Ebene auf <n> setzen
         Match: beginTraversal
    Match: digest selected JREDesc: JREDesc[version 1.6+, heap=-1--1, args=null, href=http://java.sun.com/products/autodl/j2se, sel=false, null, null], JREInfo: JREInfo for index 0:
    platform is: 1.7
    product is: 1.7.0_07
    location is: http://java.sun.com/products/autodl/j2se
    path is: C:\Program Files (x86)\Java\jre7\bin\javaw.exe
    args is:
    native platform is: Windows, x86 [ x86, 32bit ]
    JavaFX runtime is: JavaFX 2.2.0 found at C:\Program Files (x86)\Java\jre7\
    enabled is: true
    registered is: false
    system is: true
         Match: ignoring maxHeap: -1
         Match: ignoring InitHeap: -1
         Match: digesting vmargs: null
         Match: digested vmargs: [JVMParameters: isSecure: true, args: ]
         Match: JVM args after accumulation: [JVMParameters: isSecure: true, args: ]
         Match: digest LaunchDesc: file:/C:/Users/Olaf/Documents/NetBeansProjects/JavaFXApplication4/dist/JavaFXApplication4.jnlp
         Match: digest properties: []
         Match: JVM args: [JVMParameters: isSecure: true, args: ]
         Match: endTraversal ..
         Match: JVM args final:
         Match: Running JREInfo Version match: 1.7.0.07 == 1.7.0.07
         Match: Running JVM args match: have:<> satisfy want:<>
    CacheEntry[file:/C:/Users/Olaf/Documents/NetBeansProjects/JavaFXApplication4/dist/JavaFXApplication4.jar]: updateAvailable=true,lastModified=Tue Sep 04 21:16:35 CEST 2012,length=39432
    java.lang.ExceptionInInitializerError
         at com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
         at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(Unknown Source)
         at javax.xml.ws.Service.<init>(Unknown Source)
         at javafxapplication4.ws.NewWebService_Service.<init>(NewWebService_Service.java:42)
         at javafxapplication4.JavaFXApplication4.start(JavaFXApplication4.java:25)
         at com.sun.javafx.applet.FXApplet2$1.run(FXApplet2.java:131)
         at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
         at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
         at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
         at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:67)
         at java.lang.Thread.run(Unknown Source)
    Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "xml.catalog.ignoreMissing" "read")
         at java.security.AccessControlContext.checkPermission(Unknown Source)
         at java.security.AccessController.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
         at java.lang.System.getProperty(Unknown Source)
         at com.sun.org.apache.xml.internal.resolver.CatalogManager.<init>(Unknown Source)
         at com.sun.org.apache.xml.internal.resolver.CatalogManager.<clinit>(Unknown Source)
         ... 14 more
    ======================================================
    Any hint for me.
    thx
    Olaf

    Sign your application.
    http://docs.oracle.com/javafx/2/deployment/deploy_overview.htm#CEGJGHDA

  • Getting GTK error while running javaFX application on linux

    I developed an JavaFX application that works fine on Windows. So, I tried to run this same application on Linux (ubuntu x86) and it is not working. I setup all the environment with following this article : http://docs.oracle.com/javafx/2.0/release_notes_linux/jfxpub-release_notes_linux.htm. The Sample JavaFX applications available at http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html work great on Linux. But when I run my application, I got this error:
    java -jar prototipoGui.jar
    Exception in thread "main" java.lang.RuntimeException: Application launch error
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:122)
    at java.lang.Thread.run(Thread.java:722)
    Caused by: java.lang.UnsatisfiedLinkError: com.sun.glass.ui.gtk.GtkApplication._invokeLater(Ljava/lang/Runnable;)V
    at com.sun.glass.ui.gtk.GtkApplication._invokeLater(Native Method)
    at com.sun.glass.ui.Application.invokeLater(Application.java:336)
    at com.sun.javafx.tk.quantum.QuantumToolkit.defer(QuantumToolkit.java:617)
    at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:138)
    at com.sun.javafx.application.PlatformImpl.runAndWait(PlatformImpl.java:171)
    at com.sun.javafx.application.PlatformImpl.tkExit(PlatformImpl.java:264)
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:417)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
    ... 1 more

    I get the same message, when running my application in stand alone.
    May be there is a problem when running in aa KDE environment.
    But I developed my app in Eclipse under KDE4. If the app is started by IDE it runs.

  • Issue in running JavaFX application in web browser

    Our team currently was developing a desktop application which now needs to be run in a web browser. Deployment is successful, but while running it in IE 8, the background color of the IE outside the stage (from the desktop application) is coming in grey color. Our applucation's background color is white, hence, this makes it look odd. The more peculiar thing is when we run the url in IE8, the first page (login page) comes without the grey part, ie the whole window is white colored. But after logout, (the login page should be made visible) only the stage size comes in white and the rest of the window comes in grey background color. Please help in fixing this.

    to answer your questions:
    how to set the browser size according to stage sizeTo resize area reserved for application in a web page you can access web page from inside of your app and use javascript to get a handle of application in the web page DOM and then set size on it as you need.
    See
    http://docs.oracle.com/javafx/2.0/deployment/javafx_javascript.htm#BCEIAGHE
    and
    http://docs.oracle.com/javafx/2.0/deployment/javafx_javascript.htm#BCEIBFGD
    How to get the handle for browser size here?For embedded application you will get initial Stage in the start() sized to browser allocated area.
    And you can you tip i referenced before to resize app if browser will change allocated area (due to user requests).
    However, i think your real question is different:
    that in the login page the stage size is smaller than the browser size we set while packagingDoes it mean your app pops create login stage first and then populate main stage?
    Then good app behavior is like:
    if (runningEmbedded) { //see tip 2.3.1 in the same guide
    //fill given stage with something - e.g. same background as web page or some image
    popLoginPage();
    //once user logged populate main stage
    populateMainStage();
    And create all assets for all stages in the init(). So in start you will only adding panels to the stages and creating new stages.
    You may need to erase "dummy" content from the main stage before you populate it.
    Hope this helps. If not, please explain what you app is doing in more details. What do you do with stage provided in start, how you create login and other stages.
    What you size your application to and what are stage dimensions.

  • JavaFX and JDK 1.7.x? (x=latest minor build as of 5/13)

    Good morning.
    I was playing around with building a standalone GUI app last night and wanted to test drive JavaFX 2.0 as the tool to build the UI. After reading through the documentation on the download site, I downloaded the JDK version 1.7.x (64 bit) and tried to create a simple main class based on http://docs.oracle.com/javafx/2/get_started/hello_world.htm--but eclipse could not find javafx.application.Application. I made sure that the JDK 1.7 was my target Java and in my build path then decided to try the 32 bit version. I still could not find javafx.application.Application in my build path. So...I downloaded the latest JavaFX package and installed that, pulling in the correct jars (I forget what they are offhand...it was late and FX is new to me) and I could now find javafx.application.Application. My question is this...did they not bundle FX with the jdk as the documentation claims, or was I missing something when I downloaded the installer (for Windows)?
    Thank you in advance!
    -Chris

    My question is this...did they not bundle FX with the jdk as the documentation claims, or was I missing something when I downloaded the installer (for Windows)?JavaFX is bundled with java 7 (post update 6).
    JavaFX is not on the classpath for java 7.
    JavaFX is on the classpath for java 8.
    For eclipse development, development with e(fx)clipse is recommended http://www.efxclipse.org/ - it is smart enough to find out where JavaFX is in a standard Java 7 installation and place it in the classpath so that you don't get class not found exceptions while developing. It can also create deployment bundles which are able to automatically find and place JavaFX on the classpath so that users of your application don't have this issue either.
    http://www.efxclipse.org/trac/wiki/Tutorial1 e(fx)clipse getting started tutorial (e.g. an eclipse version of the JavaFX hello world tutorial you mentioned).

  • JavaFX 2.2 not installing after JDK7u6 installation on Windows 7 x64

    Please everybody ignore this message of mine, I've had a D'OH! moment! This new installation of JDK7u6 has completely thrown me
    because of the existing documentation, as some of the documentation still states the following:
    http://docs.oracle.com/javafx/2/installation_2-2/javafx-installation-windows.htm#CJGGCFBH
    As on this page it still has the following documented:
    +"Installing JavaFX+
    +Note:+
    +Only one version of the JavaFX SDK and JavaFX Runtime can be installed at a time. The JavaFX Runtime installer will automatically uninstall previous versions.+
    +Run the .exe file of whichever installer you downloaded. If you use a bundled installer, the installers run in the following order:+
    +Java Development Kit (JDK)+
    +Java Runtime Environment (JRE)+
    +JavaFX Software Development Kit (SDK)+
    +JavaFX Runtime+
    +The default installation directory for the JavaFX 2.2 SDK is C:\Program Files\Oracle\JavaFX 2.2 SDK. See JavaFX SDK File Structure for the directories and contents.+
    +The default installation directory for the JavaFX 2.2 Runtime is C:\Program Files\Oracle\JavaFX 2.2 Runtime."+
    And I guess I was still expecting to see the JavaFX installer following the JDK installer during installation. When this didn't happen I was searching my system for the
    above installation path C:\Program Files\Oracle\JavaFX 2.2, and of course I had no entry for this, hence my earlier post. Talk about a trap for young players!
    I installed both the 32 bit and 64 bit versions of the JDK 7 update 6 SDK. Both installed JDK7u6 successfully, but both failed to initialise
    the JavaFX 2.2 installation wizard. I've checked through Control Panel and JDK7u6 are listed there, but no mention of JavaFX 2.2 anywhere?
    Before installation I made sure to uninstall JavaFX 2.1 from the Control Panel before installing JDK7u6. So what do I do now?
    Edited by: 863626 on Aug 17, 2012 9:25 PM
    Edited by: 863626 on Aug 17, 2012 9:36 PM

    @863626:
    I actually did the same as you did: I uninstalled the JDK, the JRE, and JavaFX before installing JDK 7u6, and the JDK 7u6 installer installed the JDK and the JRE, but not JavaFX.
    After reading the info you quoted in your post, I tried the following: uninstall everything, reinstall the 7u5 kit, which installed JavaFX 2.1.1, then uninstall the JDK and JRE 7u5 but leave JavaFX there, and reinstall JDK 7u6.
    The JDK and JRE 7u6 were properly reinstalled, but the JavaFX installation was not upgraded to 2.2.0 as expected.
    Moreover, I noticed that in the windows displayed after the JRE 7u5 is installed, the button present at the bottom is labelled "Continue" and leads to the JavaFX installation wizard.
    In the equivalent window of the JDK/JRE 7u6 installer, the button present at the bottom is labelled "Close" and terminates the wizard without installing any JavaFX kit or component.
    Conclusion: You did not have a D'OH moment — the JDK 7u6 installer either really misses the JavaFX kit or really has a bug in its installation sequence!
    And by the way, I reproduced the bug with the 64-bit Windows installer on a 64-bit Windows 7 platform.
    Anyone at Oracle can help?
    Thanks,
    Jeff

  • Deploy javafx applications on window. + uninstall old version

    I have a problem on windows xp when I deploy a new version of my javafx 2.2 application.
    The new version is replacing the previous version of my software, but when I look in my 'installed software'. My old version still appears.
    (I think this is something to do with registry..)
    I'm using wix to have a .msi file for the installer.
    Wix is using the build.xml file used by Netbeans.
    In my build.xml I specify next values for versioning:
         <target name="-post-jfx-deploy">
              <fx:deploy width="${javafx.run.width}" height="${javafx.run.height}"
                      nativeBundles="all"
                      outdir="${basedir}/${dist.dir}" outfile="${application.title}">
                   <fx:application name="${application.title}"
                              mainClass="${javafx.main.class}" id="A9B62443-2008-4D38-8153-C72A21B1E497" version="1.0.4"/>
                   <fx:resources>
                   </fx:resources>
              </fx:deploy>         
         </target>I based my files with this information:
    http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm#BCGIBBCI
    http://blueskyworkshop.com/topics/Java-Pages/javafx-win-installer/
    Do someone has experience with this kind of stuff?
    Or do someone know what could cause this issue?
    Any help would be appreciated!

    Chris,
    Thanks for the info/suggestions. I had already done the "clean install" without knowing it. I also had uninstalled Firefox and Chrome and was looking at dumping Safari, but I found the culprit file "_Flash Player.plugin" (version10.2.151.49) on a search for "Flash Player" under Spotlight.
    Strange thing was the file did not appear when just browsing through the various directories or searching with finder. Removed it and all is good.
    Mike

  • Drag and Drop objects with JavaFX properties

    Has anyone tried to implement drag and drop functionality with objects containing JavaFX properties? The issue I'm running into is that the objects appear to need to be serializable, and the JavaFX properties are not serializable. I can implement Externalizable instead of Serializable, and basically serialize the values contained by the FX properties, but of course I lose any bindings by doing this (as the listeners underlying the bindings are not serialized).
    The [url http://docs.oracle.com/javafx/2/api/javafx/scene/input/Clipboard.html]javadocs for Clipboard state "In addition to the common or built in types, you may put any arbitrary data onto the clipboard (assuming it is either a reference, or serializable. See more about references later)" but I don't see any further information about references (and at any rate, this doesn't really make sense since anything that's serializable would be a reference anyway). Is there a special DataFormat I can use to specify a reference in the local JVM so the reference gets passed without serialization?
    I know this might not make sense without a code example; I just thought someone might have come across this closely enough to recognize the problem. I'll try to post a code example tonight...

    Here's pretty much the simplest example I can come up with. I have a real-world example of needing to do this, but the object model for the real example is quite a bit more complex.
    For the toy example, imagine we have a list of projects, some employees, and we want to assign each project to one or more employees. I have a Project class with a title and assignee. (In real life you can imagine other properties; due date, status, etc.) I'll keep a ListView with a bunch of unassigned projects (titles but assignees equal to null) and then a ListView for each of the employees.
    To assign a project to an employee, the user should be able to drag from the "master" list view to one of the employee list views. When the project is dropped, we'll create a new project, set the assignee, and bind the title of the new project to the title of the project which was dragged. (Remember we want to be able to assign a single project to multiple employees.)
    So here's the first shot:
    A couple of simple model classes
    Project.java
    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;
    import javafx.beans.property.ObjectProperty;
    import javafx.beans.property.SimpleObjectProperty;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.beans.property.StringProperty;
    public class Project {
         private final StringProperty title ;
         private final ObjectProperty<Employee> assignee ;
         public Project(String title) {
              this.title = new SimpleStringProperty(this, "title", title);
              this.assignee = new SimpleObjectProperty<Employee>(this, "assignee");
         public Project() {
              this("");
         public StringProperty titleProperty() {
              return title ;
         public String getTitle() {
              return title.get() ;
         public void setTitle(String title) {
              this.title.set(title);
         public ObjectProperty<Employee> assigneeProperty() {
              return assignee ;
         public Employee getAssignee() {
              return assignee.get();
         public void setAssignee(Employee assignee) {
              this.assignee.set(assignee);
         @Override
         public String toString() {
              String t = title.get();
              Employee emp = assignee.get();
              if (emp==null) {
                   return t;
              } else {
                   return String.format("%s (%s)", t, emp.getName()) ;
    }Employee.java
    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.beans.property.StringProperty;
    public class Employee {
         private StringProperty name ;
         public Employee(String name) {
              this.name = new SimpleStringProperty(this,"name", name);
         public StringProperty nameProperty() {
              return name ;
         public String getName() {
              return name.get();
         public void setName(String name) {
              this.name.set(name);
    }and the application
    DnDExample.java
    import javafx.application.Application;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.collections.ObservableList;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Label;
    import javafx.scene.control.ListCell;
    import javafx.scene.control.ListView;
    import javafx.scene.control.TextField;
    import javafx.scene.input.ClipboardContent;
    import javafx.scene.input.DataFormat;
    import javafx.scene.input.DragEvent;
    import javafx.scene.input.Dragboard;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.input.TransferMode;
    import javafx.scene.layout.HBox;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    import javafx.util.Callback;
    public class DnDExample extends Application {
         private static final DataFormat PROJECT_DATA_FORMAT = new DataFormat("com.example.project"); // is there something special I can use here?
         @Override
         public void start(Stage primaryStage) {
              final HBox root = new HBox(5);
              final ListView<Project> allProjects = new ListView<Project>();
              final Employee fred = new Employee("Fred");
              final Employee ginger = new Employee("Ginger");
              final ListView<Project> fredsProjects = new ListView<Project>();
              final ListView<Project> gingersProjects = new ListView<Project>();
              final VBox employeeLists = new VBox(5);
              employeeLists.getChildren().addAll(new Label("Fred's Projects"), fredsProjects, new Label("Ginger's Projects"), gingersProjects);
              root.getChildren().addAll(allProjects, employeeLists);
              allProjects.setCellFactory(new Callback<ListView<Project>, ListCell<Project>>() {
                   @Override
                   public ListCell<Project> call(ListView<Project> listView) {
                        return new AllProjectListCell();
              allProjects.setEditable(true);
              final EventHandler<DragEvent> dragOverHandler = new EventHandler<DragEvent>() {
                   @Override
                   public void handle(DragEvent dragEvent) {
                        if (dragEvent.getDragboard().hasContent(PROJECT_DATA_FORMAT)) {
                             dragEvent.acceptTransferModes(TransferMode.COPY);
              fredsProjects.setOnDragOver(dragOverHandler);
              gingersProjects.setOnDragOver(dragOverHandler);
              fredsProjects.setOnDragDropped(new DragDropHandler(fred, fredsProjects.getItems()));
              gingersProjects.setOnDragDropped(new DragDropHandler(ginger, gingersProjects.getItems()));
              allProjects.getItems().addAll(new Project("Implement Drag and Drop"), new Project("Fix serialization problem"));
              Scene scene = new Scene(root, 600, 400);
              primaryStage.setScene(scene);
              primaryStage.show();
         public static void main(String[] args) {
              launch(args);
         private class DragDropHandler implements EventHandler<DragEvent> {
              private final Employee employee ;
              private final ObservableList<Project> itemList;
              DragDropHandler(Employee employee, ObservableList<Project> itemList) {
                   this.employee = employee ;
                   this.itemList = itemList ;
              @Override
              public void handle(DragEvent event) {
                   Dragboard db = event.getDragboard();
                   if (db.hasContent(PROJECT_DATA_FORMAT)) {
                        Project project = (Project) db.getContent(PROJECT_DATA_FORMAT);
                        Project assignedProject = new Project();
                        assignedProject.titleProperty().bind(project.titleProperty());
                        assignedProject.setAssignee(employee);
                        itemList.add(assignedProject);
         private class AllProjectListCell extends ListCell<Project> {
              private TextField textField ;
              private final EventHandler<MouseEvent> dragDetectedHandler ;
              AllProjectListCell() {               
                   this.dragDetectedHandler = new EventHandler<MouseEvent>() {
                        @Override
                        public void handle(MouseEvent event) {
                             Dragboard db = startDragAndDrop(TransferMode.COPY);
                             ClipboardContent cc = new ClipboardContent();
                             cc.put(PROJECT_DATA_FORMAT, getItem());
                             db.setContent(cc);
                             event.consume();
                   this.setEditable(true);
              @Override
              public void updateItem(final Project project, boolean empty) {
                   super.updateItem(project, empty);
                   if (empty) {
                        setText(null);
                        setGraphic(null);
                        setOnDragDetected(null);
                   } else if (isEditing()) {
                        if (textField != null) {
                             textField.setText(getItem().getTitle());
                        setText(null) ;
                        setOnDragDetected(null);
                        setGraphic(textField);                    
                   } else {
                        setText(project.getTitle());
                        setOnDragDetected(dragDetectedHandler);
              @Override
              public void startEdit() {
                   super.startEdit();
                   if (!isEmpty()) {
                        textField = new TextField(getItem().getTitle());
                        textField.setMinWidth(this.getWidth()-this.getGraphicTextGap());
                        textField.focusedProperty().addListener(new ChangeListener<Boolean>() {
                             @Override
                             public void changed(
                                       ObservableValue<? extends Boolean> observable,
                                       Boolean oldValue, Boolean newValue) {
                                  if (! newValue) {
                                       getItem().setTitle(textField.getText());
                                       commitEdit(getItem());
                        setText(null);
                        setGraphic(textField);
                        setOnDragDetected(null);
              @Override
              public void cancelEdit() {
                   super.cancelEdit();
                   if (!isEmpty()) {
                        setText(getItem().getTitle());
                        setGraphic(null);
                        setOnDragDetected(dragDetectedHandler);
                   } else {
                        setText(null);
                        setGraphic(null);
                        setOnDragDetected(null);
              @Override
              public void commitEdit(Project project) {
                   super.commitEdit(project);
                   if (!isEmpty()) {
                        setText(getItem().getTitle());
                        setGraphic(null);
                        setOnDragDetected(dragDetectedHandler);
    }If you try to drag from the list on the left to one of the lists on the right, it will fail pretty quickly and tell you that the data need to be Serializable.
    Simply adding "implements Serializable" to the Project and Employee classes doesn't work, as you find that SimpleStringProperty and SimpleObjectProperty are not Serializable. So instead I can use Externalizable:
    public class Project implements Externalizable {
    @Override
         public void writeExternal(ObjectOutput out) throws IOException {
              out.writeObject(title.get());
              out.writeObject(assignee.get());
         @Override
         public void readExternal(ObjectInput in) throws IOException,
                   ClassNotFoundException {
              setTitle((String)in.readObject());
              setAssignee((Employee)in.readObject());
    }and
    public class Employee implements Externalizable {
         @Override
         public void writeExternal(ObjectOutput out) throws IOException {
              out.writeObject(name.get());
         @Override
         public void readExternal(ObjectInput in) throws IOException,
                   ClassNotFoundException {
              setName((String) in.readObject());
    }This makes the drag and drop work, but if you drop a project on one of the employee lists, then edit the project title in the master list, the binding is not respected. This is because deserialization creates a new SimpleStringProperty for the title, which is not the property to which the title of the new Project object is bound.
    What I really want to do is to be able to drag and drop an object within the same JVM simply by passing the object by reference, rather than by serializing it. Is there a way to do this? Is there some DataFormat type I need?

  • JavaFX Canvas : "fuzzy" lines compared to Swing

    Hi,
    I would very much like to port my Swing application (that draws on a JComponent) to JavaFX. But to my dismay the JavaFX Canvas does not draw as sharp and thin lines as Swing does.
    Lines drawn with the same thickness is noticeably thicker (and "fuzzier") on the JavaFX Canvas than the equivalent Swing lines. I have tested both on Windows (7) and Linux, both 64-bit.
    In my JavaFX app, I proceed like this: gc.beginPath() --> gc.moveTo(..) --> gc.lineTo() --> gc.stroke().
    Is there a setting or something I am missing?

    You need to take into account the coordinate system.
    For further explanation of why this works see the answer to the question below and Node's javadoc:
    http://stackoverflow.com/questions/11881834/what-are-a-lines-exact-dimensions-in-javafx-2
    http://docs.oracle.com/javafx/2/api/javafx/scene/Node.html
    At the device pixel level, integer coordinates map onto the corners and cracks between the pixels and the centers of the pixels appear at the midpoints between integer pixel locations. Because all coordinate values are specified with floating point numbers, coordinates can precisely point to these corners (when the floating point values have exact integer values) or to any location on the pixel. For example, a coordinate of (0.5, 0.5) would point to the center of the upper left pixel on the Stage. Similarly, a rectangle at (0, 0) with dimensions of 10 by 10 would span from the upper left corner of the upper left pixel on the Stage to the lower right corner of the 10th pixel on the 10th scanline. The pixel center of the last pixel inside that rectangle would be at the coordinates (9.5, 9.5).
    import javafx.application.Application;
    import javafx.scene.*;
    import javafx.scene.canvas.*;
    import javafx.stage.Stage;
    /** JavaFX Canvas : "fuzzy" lines compared to Swing JavaFX Canvas : "fuzzy" lines compared to Swing */
    public class FuzzyCanvas extends Application {
      public static void main(String[] args) { launch(args); }
      @Override public void start(Stage stage) {
        Canvas canvas = new Canvas(50, 50);
        GraphicsContext gc = canvas.getGraphicsContext2D();
        gc.beginPath();    // fuzzy line.
        gc.moveTo(10, 30);
        gc.lineTo(20, 30);
        gc.stroke();
        gc.beginPath();    // clean line.
        gc.moveTo(10.5, 39.5);
        gc.lineTo(19.5, 39.5);
        gc.stroke();
        stage.setScene(new Scene(new Group(canvas)));
        stage.show();
    }

Maybe you are looking for