• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
  • Paul Clapham
  • Devaka Cooray
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

Where to start with Java Desktop application?

 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi everyone, i have recently switched from .net to java due to development of multi platform desktop application (but truthfully there were .net project in pipeline in office ) and web application (it will be developed for handling API requests from Desktop application and it will be developed in PHP because we got very big force of PHP developers here in our team)

i have recently started to learn it and found it is easy to learn because i had worked in C-sharp and its quite similar to each other

but some questions comes in my mind so i thought i should get some answers from experts. as my currently focus is on desktop application so i would ask question regarding to it (but feel free to give little broad answer for extending my knowledge in JAVA )

1. should i consider learning any framework on JAVA ? which and why ?
2. my desktop application will go into many development life-cycles (because it would be SaaS application later on) so considering any JAVA framework would be a good option ?
3. should i consider looking into Test Driven Development for developing desktop app ?

and i really appreciate if any one could give a good guidelines for developing good application

thanks
 
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There are 3 GUI framework that come with the JRE these days:
  • AWT (which is obsolete, and should not be used for anything new)
  • Swing (which was the default toolkit for many years)
  • JavaFX (which is newish, and more capable than Swing, but also a bit harder to get into, IMO)


  • It's hard to make a recommendation between Swing and JavaFX - maybe start reading up on both, and play around with them, to see how it goes. Note that JavaFX only comes bundled with fairly recent JRE 7 versions; for earlier JREs you will need to ship the libraries with your app. And if you need to support users running on Java 5 and early Java 6 versions (hopefully not), JavaFX isn't a viable solution at all.
     
    Marshal
    Posts: 80493
    455
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    And welcome to the Ranch

    I shall try duplicating this post in the Swing forum in the hope of its getting more attention.
     
    Bartender
    Posts: 10780
    71
    Hibernate Eclipse IDE Ubuntu
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Faisal Ahmed Khan wrote:1. should i consider learning any framework on JAVA ? which and why ?


    My answer: No. At least - not yet; and for the very reason you state - there are TONS of them.

    Get to know the Java foundation classes really well first. Then start looking around for a "framework" to learn.

    My desktop application will go into many development life-cycles (because it would be SaaS application later on) so considering any JAVA framework would be a good option ?


    Here, it's very difficult to advise, since it sounds like a lot of these decisions are going to be made for you. If you're development bods are going to be PHP, then learn PHP.

    Should i consider looking into Test Driven Development for developing desktop app ?


    I'd say you should always make sure you're testing everything you do, and TDD actually forces you to do it since (from what I understand) you're not even allowed to start programming until your tests are already written. How that dovetails in with GUI code I'm not quite sure, since GUI usually involves a LOT of boilerplate code; but I'm sure your colleagues can help.

    And if you want a testing framework to look at, you might consider JUnit - although there may be more targeted ones around for GUI apps; not to mention PHP.

    HIH

    Winston
     
    Faisal Ahmed Khan
    Greenhorn
    Posts: 5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    thanks @Ulf_Dittemer for giving a quick reply and thanks @Campbell_Ritchie for giving me a warm welcome

    i would like your hear remarks about http://www.jidesoft.com/jdaf/ , http://www.jgoodies.com/ and Griffon too from @Ulf_Dittemer and all the other people

    i know Griffon primary language is groovy (just read it), would it be good for me to dig into Groovy ?


    @Winston Gutkowski thanks for replying

    as i am already learning Java so i thought that adding (any suggested ) framework into it would save my time too


    i had selected JAVA because i have to develop desktop application for multi-platform (Mac , Win and Linux ) and the desktop application requires access to operating system processes.(i won't discuss application here because it would take this thread outside topic)



     
    Winston Gutkowski
    Bartender
    Posts: 10780
    71
    Hibernate Eclipse IDE Ubuntu
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Faisal Ahmed Khan wrote:i had selected JAVA because i have to develop desktop application for multi-platform (Mac , Win and Linux )...


    Right, but the term "desktop application" is far too vague for us to give any guidance.

    If you mean an app that can run on a machine without Internet access, then you're pretty much constrained to Swing or FX (both of which have been mentioned); if not, a whole new bunch of options are available.

    It actually sounds to me like you're looking for a GUI framework, not a framework in general. However, if the whole thing is going to be written in PHP, I suspect it will be your main constraint.

    Winston
     
    Ulf Dittmer
    Rancher
    Posts: 43081
    77
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Hm, I thought it was pretty clear that the backend will be in PHP, and the frontend will be a desktop app written in Java with the help of some Java GUI toolkit. I have never heard the term "desktop app" used so broadly as to encompass web apps, nor as a differentiator between apps that do or do not have network (or Internet) access.

    @Faisal: maybe you can clarify what you're looking for, so that our advice goes off in the right direction.
     
    Faisal Ahmed Khan
    Greenhorn
    Posts: 5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Sorry for late reply...

    My desktop software is monitoring application. I need to build software to monitor all activities of user and some other small features. This software going to send all the data to web application (api) and all the report and other stuff is managed in web application. This software is needed to be build for all OS. This software is very similar to time tracking application

    I hope that I am able to clarify the scope of project
     
    Ulf Dittmer
    Rancher
    Posts: 43081
    77
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    I need to build software to monitor all activities of user and some other small features.


    Java is mostly likely not the best language for that kind of thing. The only way to access user activity outside of the app is through native code - so you would have to use JNI. That means having separate builds for Windows, OS X and Linux. What's more, while you didn't say what, exactly, "monitoring" entails, presumably there would be no user interaction with the app itself - so there's no need for a GUI. So what's left are OS-specific native background daemons that collect whatever data they need to collect and then send it to a server. Make sure you adhere to all workplace and privacy regulations that govern such monitoring.
    reply
      Bookmark Topic Watch Topic
    • New Topic