I tried to create a new Swing GUI desktop application template using NetBean 7.0 and just found NetBean has a disclaimer:
"Note that JSR-296 (Swing Application Framework) is no longer developed and will not become part of the official Java Development Kit as was originally planned. You can still use the Swing Application Framework library as it is, but no further development is expected."
So does it mean swing will stay the same from now on and nothing new will be added? What will that impact the applications using Swing? Do I need to consider other GUI frameworks instead? What would be the best framework option for a scientific plotting and graphic heavy application?
Thanks.
Swing is part of JAVA since 1.2 and it is part of the JAVA STANDARD. It is not going anywhere any time soon.
The JSR-296 (Swing Application Framework) was a framework to simplify and help developing in swing, which didnt go very far. Netbeans uses it internally. If using JAVA 7 then, like many other netbeans specific libraries, you need to ship it separately with you app, because it is not standard.
So, feel free to develop in swing. A pure swing app WILL WORK on any JAVA STANDARD on almost any platform for a long time to come. If you use the SAF, thats also OK, but that is not standard and its pretty much dead, so just remember to ship the jar with your app.
Hope that clarifies the situation.
Related
I have an existing Large Java Swing GUI application and would like to
migrate to IOS(Mobile app). Will Java Swing work for sure with robovm?
Just compile to the bytecode on MAC and run it on IOS, is it
going to be that simple and there is going to some work involved in it?
Will it support all the 3rd party jars or are there any restriction in it?
Are there any other alternatives on opensource or otherwise simpler for Java Swing GUI application migration to Mac OS?
I don't think Swing is going to work with RoboVM. Even if it does, the App Store will very likely reject your app because it won't conform with their UI guidelines.
As far as the non-ui logic in your app, RoboVM should handle it given you're not making native calls.
I know of no Swing to Mac UI converters. You're probably better off reskinning your app.
Codename One is very much like Swing and was modeled based on it, it will allow you to port the code relatively easily (layout managers etc.). Porting a Swing app should be trivial see this quick getting started for Swing developers: http://www.codenameone.com/swing.html
I want to develop a simple desktop application that connects to the Java DB , using Java Swing for the interface design.
I am new to Swing so I tried some tutorials on the net and came across
the Netbeans platform Swing components.
What is
the difference between the Java Swing architecture and the Netbeans Swing components?
Which one will be appropriate for developing interfaces
for desktop applications in Java?
From The NetBeans Platform:
The NetBeans Platform is a generic framework for Swing applications. It provides the "plumbing" that, before, every developer had to write themselves—saving state, connecting actions to menu items, toolbar items and keyboard shortcuts; window management, and so on.
It is an API built with Swing, that is supposed to provide some extra 'built-in' functionality. Since you need to know Swing to be able to use it. I suggest you concentrate on Swing for now.
Actually, it will be better to move on Intellij Idea from Jet Brains. It’s much more better than NetBeans IDE. Of course, it’s only my opinion.
Netbeans recently dropped support for Swing based Java Desktop Applications from version 7.1 onwards. Till that point I had always imagined that creation of Java Application User Interfaces would be cross platform. I thought that a Swing UI created in Netbeans designer could be easily understood and edited in Eclipse but apparently now I realize that it is not the case.
Is there a way to make the Java Application User Interface by not depending on IDE-specific Java UI designers? That is a form of UI description, can be XML or something that can be edited on the different IDEs that people would like to use.
That post starts..
I just installed NB 7.1 Beta, and tried to open one of our many Swing Application Framework-based applications, ..
OK. You can stop reading there, sounds like JSR 296 which has been dying for years. Pure Swing apps. should be fine.
I downloaded Net Beans IDE and created a new desktop aplication. I choose it to be Swing app. The IDE displayed that the Swing framework is out of date and will not be supported in the future.
Does this mean that Swing is out of date? And if so what are the most recent frameworks that can be used to develop desktop applications?
thanks
In NetBeans the Desktop Application project type is a project based on an external library that was supposed to be the Swing Application Framework (which does things like session state of GUI controls and resource bundle management) but never matured. So that project type is outdated.
However Swing itself (the GUI platform) is `current' in the sense that it is the foremost GUI toolkit that Java has and will continue to have for some time.
The Swing Application Framework (JSR296) was a project intended to extract the common elements for developing applications with Swing. It is safe to use but is no longer being developed. The official page https://appframework.dev.java.net/ suggests a couple of alternatives, including using the netbeans platform itself and, given how greatly netbeans has matured, I would be keen to investigate this approach.
Swing itself is fine, it'll be around as long as Java is. Though in saying that desktop Java has never really taken hold in the same way other flavours have.
AFAIK Swing is definitelly not out of date and will be even enhanced in JDK7
Maybe you should show us screenshot, it might be misunderstanding
I think something wrong with your netbeans. Can you show some screenshot?
The future of swing
Thanks for your answers to my previous question about GUI in java. I now wonder what are the solutions chosen by professionals to get a nice GUI, for "real" applications. Do you use swing and JComponents and just change the "look and feel" ? Do you prefer awt or another library ?
Sorry if that question sounds weird, I'm a student and I don't really know how java is used in the real world...
In our company we use Swing, as that is supported by the JVM out of the box, but we do use color coded background colors for some panels and buttons.
If we'd use something different, like SWT or Jambi we'd also have to roll out those frameworks for all platforms, and test those frameworks for all OSses and (supported) java versions. Not nice at all.
It is however fairly tricky to create a nice responsive application with Swing; so you really need to use SwingWorker and the like. With a bit of experience however you can create a nice application that way.
And even if it isn't the fastest framework to develop in, development time is really small compared to defining the functional requirements of the user interface, and testing and support when the version is released.
That said, our target is desktops. If you target mobile devices or also need a web frontend your choices may vary.
I don't believe anyone prefers AWT anymore. Swing supplanted it entirely eleven years ago, building on top of it to correct flaws in the AWT 1.0 design.
Swing isn't the only way that professionals make Java UIs. That works for desktops, but there's also JavaFX now. For the web, UIs are built using HTML, CSS, JavaScript, and JSPs.
My experience is that most organizations that want to create rich GUIs still use Swing, and manually go through all the annoyances of layout managers, etc.
The use of SWT is fairly limited to organizations that are using the Eclipse RCP as their platform. I'm not sure why it hasn't caught on outside this platform.
It's sad to admit, but Java Swing GUIs don't generally look good unless you spend a lot of time creating a more native feel for them. Even then, they often lose out on aesthetics to equivalent programs written specifically for Windows and which use Window APIs like WinForms.
The most decent Apps I saw in the last years were build using Eclipse Rich Client Platform
Eclipse uses the Standard Widget Toolkit
and provides Graphical Editing Framework (GEF)
We typically use Swing becuse it's supported in standard JREs out of the box. Normally we do the initial form design and event hookup in Netbeans and then export it to whatever we wish, Eclipse, for example.
Netbeans spits out pure Java using standard libraries (plus a jar or two you have to include) so it's no big deal designing the form in Netbeans and later moving on to something else.
Some people suggested doing form layout by hand using a layout manager. I see that as an option only if you are doing something big and very well budgeted that has to be maintained ad infinitum. Otherwise it's just too time consuming to be worth it.
We rely on SWT for our Java GUIs. Yes, you have to include an external native library, but the look and feel is native, more responsive (although Swing has become much faster in the past few years) and seamless with other apps on the target platform.
Macintosh OS X creates their own Java runtime. They give Swing components the same look and feel as native applications.
I use strictly Swing. I distribute "real" desktop applications via Web Start for both Mac and Windows that interface with the user's smart card reader.
The NetBeans IDE gives you a WYSIWYG way to create your forms. I've tried it out, and it's pretty neat, but we still use Eclipse as our IDE and design the forms in code.