Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I was figuring out on the net, how to create a desktop application with Java. I found I can do it through NetBeans IDE. Is there a better IDE?
Can you suggest me a suitable eBook for learning Java NetBeans?
There are three major IDEs for Java:
NetBeans - https://netbeans.org/
Eclipse - http://www.eclipse.org/
IntelliJ - http://www.jetbrains.com/idea/ (This one is a commercial product.)
Pick your religion.
Actually, you can create desktop application with Java Swing GUI Toolkit, which is a part of the Java JDK, regardless of the IDE. #Lee Meador gives you some to choose from.
Here is a tutorial on making a simple desktop application with NetBeans.
There are also tons of YouTube tutorials for beginners. Search for "Java tutorials" and you'll be all set.
IDE preferences are fairly subjective. Netbeans is not bad. Eclipse is also a good IDE. My favorite one, though, is IntelliJ IDEA. They have a free Community Edition which lets you do a lot of things, but I paid for it to get full functionality.
As far as eBooks for learning about the IDEs, I would suggest just looking on the website of whatever IDE you end up choosing.
Here's how I see things when it comes to IDE's:
NetBeans is fantastic for beginners, but the code it generates for the Swing WYSIWYG editor looks like absolute garbage. If you're okay with keeping the code in NetBeans and not worrying about how the code for you GUI looks, it's an excellent way to go if you don't feel like hard-coding Swing.
Eclipse is a very professional and powerful tool, but it's a bit daunting at times as well, and it's not quite as quick and easy to get things up and running. It has no built-in drag and drop Swing editor (although Google provides an excellent one called the Google Plugin for Eclipse) but it's got far and away the most powerful debugger I've ever used.
I don't know a lot about IntelliJ other than that it's also a good choice for beginners and professionals alike, but I haven't seen as much community support for it. That may just be because I've been an Eclipse die-hard for ages, but that's just how I see it.
What's more important than your IDE choice is that you figure out early on how to use it to its full potential. All three are excellent pieces of software, and all three will help you do whatever it is you want to build. But they can only help you if you learn to use their organizational tools, their editor/template options, their respective debuggers, etc. Honestly, I would say if you have any friends that are Java developers, choose whatever they're using at least for now so you have someone to go to when you don't understand how to use a particular option.
Related
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
And by the right guide, I mean one which doesn't necessarily focus entirely on how to program in Java, but puts forth a bit of effort on everything else. In other words, something which has enough information on the things which IDEs like Eclipse do for you, and how to manage those things without using an IDE.
Some examples of what I'm looking for:
How to import Java files without packaging them first.
How to specify directories for file/package imports, and where that specification needs
to be placed.
How to use Gedit to effectively program in Java with nothing but a few plugins and command line for compilation.
Great compiler error avoidance practices.
Seriously, I've looked enough now to come to the conclusion that Google really can't just hack what I need, and my best bet is an actual resource filled with lots of information.
If anyone has any ideas or thoughts on where I should look, or even an answer to any of these questions specifically, I would greatly appreciate the input.
IMHO you can't effectively program in Java without IDE (especially working on bigger project). You should learn about using/setting CLASSPATH, also check documentation for basic JDK commands (javac, java, jar, javadoc etc.).
Eclipse IDE has support for other important project tools e.g. Ant and Maven (for example with M2Eclipse plugin), so you can learn them too if you want.
Check this question for more lightweight IDE than Eclipse.
Java programming is quite a broad area. You may wish to do web-programming or Swing and there are lots of frameworks and framework combinations to work with.
If you want to be productive there is no way you can survive, especially for large projects, without using one IDE, or maybe even two. You will need a simple JUnit integration, as well as a debugger and automatic code generation for POJO methods, and autocompletion and refactoring capability and you name it.
I think that the best IDE for Swing development is Netbeans7. Matisse is implemented best, stable and fast. You can drag and drop anything you like anywhere and the generated code is always clear and well organized.
Eclipse has a great GWT-Designer. It is also great for Struts2 programming etc. Both work great with Maven and Ant and Hibernate.
If you need three months for a project you can do with an IDE in two weeks, there is no point in not using an IDE. On the other hand there are also masochists between us...
I recommend programming with an editor and the shell only for beginners, until they get the grasp of things and understand layouts, jars etc. Using a graphical tool to get started is wrong, since the students learn to drag and drop components mechanically and relying upon lack to get things straight. Only as soon as one knows how things work, is IDE a one way street. You never look back again. There is amazing free software today.
Eclipse has a very thorough Java dev guide, which should tell you pretty much everything it will do for you. http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.jdt.doc.user.3.1.pdf.zip I think the guide does a decent job as far as helping you help yourself as well, so I think it could still be a worthy source for what you are seeeking.
In other words, something which has enough information on the things which IDEs like Eclipse do for you, and how to manage those things without using an IDE.
So you acknowledge IDEs are great. Why aren't you using one? In particular, IDEs come with step by step documentation on how to accomplish these simple tasks. I suspect the reason there is little IDE agnostic documentation on these things is that most people actually use IDEs.
Great compiler error avoidance practices.
I for one wouldn't want to code without the Quick Fix feature of eclipse ...
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Not to be open-ended I will list my requirements.
Must have native UI (or at least .net the backend can be Java I don't care)
Must work with Ant (basic functionality is enough, as long as it shows Ant's output and double-clicking on [javac] errors inside ant outputs jumps to the referenced line)
Must have code completion (including my source code and third party .jars, no just JFC classes)
Extras (function which would help a lot):
Showing my classes and methods in a treeview
Alert for undefined symbols before compiling
Unicode support
Some form of integration with javadoc style documentation (reading JFC and other on-line documentation which was made by javadoc)
I think these are pretty down-to earth requirements.
Why don't you just use Eclipse? Then you could've listed about 200 more extras in your requirements...
Eclipse?! http://www.eclipse.org
Eclipse IDE is the best free Java IDE that I have used.
Visual J++ was an IDE from Microsoft that was shipped with Visual Studio until it was discontinued a few years ago. You might be able to get your hands on it and it should be able to follow your requirements to a certain point, but it is a discontinued product. (I don't think you mentioned it has be free.)
There has been Borland's JBuilder and possibly several other IDE's but I do concur with previous posters that Eclipse, Netbeans or IntelliJ will most likely do the job very well.
There's also Oracle's JDeveloper but since it's been rewritten I think it's also written in Java.
The only requirement that will be hard to meet is 'must have native UI'.
I long for the responsiveness of a native app
I doubt that you would settle for an online IDE then :-)
Googling for 'native java IDE' brings up (among others) Optistic. Might be worth a visit.
Lots of choices but not so many 'native UI' ones. Good luck making the right choice :-)
All the most popular IDEs should do what you have listed and a lot more. I prefer IntelliJ CE which is more productive for me. Eclipse and Netbeans are also excellent free IDEs.
In terms of screen update, I use a 2100x1600 window, sometimes locally and sometimes via VNC on our LAN and screen update speed is not an issue. Sometimes I have projects with a total of over 10,000 classes open. ;)
Update: I now use a 4K screen with over 30K classes in project with IntelliJ.
That would be either Netbeans or Eclipse if you are looking for something featurefull with nice graphical stuff, of vim or emacs if you are looking for something slimmer (with a much steeper learning curve)
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I have just learned Java in my college. However, in that I can just write programs that are run in the command line. How can I create GUI softwares using Java, something like Notepad? I'm really sorry for asking such a basic question on this forum, but I am really interested in writing real-world software. Also, I've heard a lot about Python. How can I develop similar software using Python?
Java: Trail: Creating a GUI With JFC/Swing
Python: GUI Programming in Python
And since you mentioned creating a simple text editor, here's an example.
You can use Eclipse to develop Java GUI/desktop applications for Windows.
http://www.eclipse.org/downloads/
NetBeans is also an option.
For Python, check these links:
GUI Programming in Python
Is Python any good for GUI development?
Start by using an integrated development environment such as Eclipse or Netbeans. Both of them are free.
Both have visual editors to graphically design your program and assist you writing the actions performed in the code when you e.g. click a button or so. Personally I prefer Netbeans for this purpose as the gui designer does not need to be added as an optional plugin (maybe this is also not necessary any more for Eclipse).
Of course, to go beyond the first steps, you will need to read some documentation on how to build GUIs as suggested in other answers.
If your goal is to write native windows apps you might also consider switching to .Net (c#) which is not too hard to learn when you know programming basics in java.
.net is much better integrated in the windows environment and I think visual studio has a notepad example lying around somewhere.
Not saying you can't do this in java, sure you can.
Use netbeans, it has a old but good visual development mode. I cannot remember perfectly but it uses swing library i guess. Also it lets you develop not for only windows, but for mobile phones etc if you install the right plugin.
i think for beginners netbean is good because its interface is user friendly.
it manages the code in well define manner and make code easy to understand
You can use IntelliJ:
https://www.jetbrains.com/idea/
This is a very good Java IDE if you want to become,
going to become, or are already a developer.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
How can I start writing a plugin for Eclipse?
I've looked for documentation, but unfortunately there is very little or it's poor, so what articles can recommended?
There are some pretty good resources and tutorials on the main Eclipse and IBM's site. One of the best ways is to pick an open source plug-in that has some similar features to what you want to do and start to dissect it.
PDE Does Plug-ins
Plug-in development 101, Part 1: The fundamentals
Eclipse Plugins Exposed, Part 1: A First Glimpse
Developing Eclipse plug-ins
Eclipse has a pretty good "Your First Plug-in" tutorial. If it is confusing, I'm sure they would greatly appreciate your feedback. Keep in mind that Eclipse is essentially Java, so if you don't have a good grasp of Java go for general Java tutorials first, and then come back to Eclipse development.
O'Reilly has two good Eclipse Plugin tutorials:
Eclipse Plugins Exposed
Develop Your Own Plugins for Eclipse
They not only go through the simple code examples, but give you screen shots of the process since a lot of work is done through wizard type interface windows.
If these aren't helpful, perhaps you could be more specific as to what is difficult to follow.
-Adam
The best step-by-step that covers almost every aspect of plugin development is the book "Eclipse: Building Commercial Quality Plugins".
It's available at most book shops and electronically at safari:
http://safari.oreilly.com/9780321574435
I found a great Eclipse plugin tutorial named Extending Eclipse - Plug-in Development Tutorial.
I think a very good resource is also to look at the examples that are available via the new Plug-In Project wizard.
Depending on what you want to provide with your plug-in, you can choose from editor plug-ins, view plug-ins, plug-ins that provide a property page (just to name a few) and see how they're built and what extension points they implement.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am working on designing and building a desktop application. I am thinking about using eclipse or netbeans for the base of this application. However, I have never built on either of these platforms. I am personally leaning to using netbeans because it seams like that platform is an easer learning curve. But, I wanted to ask people that have actually build on these platforms before which one is easier to use?
My personal definition of easer is as follows:
Easy to get started with
Consistent and logical API
Good documentation
Easy to build and deploy
Thanks very much,
Josh
I can't say enough about the Eclipse RCP platform. I would recommend it for any Java desktop app development.
It's free, has great tutorials, and allows cross-platform development of rich desktop applications that use native OS windowing toolkit, meaning that your application will look native in any platform. It also has a clean API that stays out of your way, and makes deploying to any platform a piece of cake.
If your interested check out this book: http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612
Easy to use: I have experience developing on Eclipse and I have to say it's not easy to understand its development model. Sure for basic stuff it has some wizards that make easier, but for something a little more complex it's just difficult. I don't know about Netbeans, but I heard its easier.
Consistent API: I think Eclipse wins in this aspect. It runs over OSGI (brings some complexity though) and has plugins extensions for pretty much everything. It seems to be the platform of choice for plugin development, so I can assume it's reliable.
Documentation: Eclipse wins by far. The help from eclipse site is excelent and the mailing list has plenny of users questions.
I have used Eclipse as a framework base but it was mostly just using SWT-- we didn't really use much of the RCP.
It really depends on what you're writing, but from what I have learned from using Eclipse it is really only suited for writing an app that involves you editing data using various views (just like editing code).
Anything more random that than can cause you to start pushing the framework in a direction it wasn't designed and causing massive fail.
You'll use Swing to develop your application because any other windowing framework is useful only if you have a previous knowledge or the appropriate background.
You can rely on http://www.javadocking.com/ to streamline you application.
If your application requirements are highly focused on the user interface, maybe you can look in another direction like Adobe Air.
RCP has a bigger learning curve, but once you learn the basics the Eclipse IDE itself supports building RCP applications very well. I have only built a plugin for NetBeans (not build a full-fledged application), and the learning curve was lesser than for the RCP application. The book Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications provides a detailed introduction to building RCP applications.
Please see some of the open source applications at http://www.eclipse.org/community/rcp.php before opining that RCP is only for building a text editor. Thanks.
I have a similar task and I am also considering different frameworks. I have some experience with Eclipse (~4 months developing RCP) and now Netbeans (played around for a couple of days). IMHO these frameworks are too complicated. You just end up debugging into Eclipse-specific plugin loaders trying to figure out why you get a ClassNotFoundException or a NullPointer. The same story with NetBeans: somehow somewhere somewhat reads out xml config files and creates UI from that, cool, as long as you follow the tutorial. And of course you can't develop and Eclipse-based RCP using some other IDE, NB is also very jealous about its usage (unless you do some hacks like I did).
What I'm lacking is a clear way to debug my threads from main to action performed. Instead I'm always told what I have to do to avoid exceptions. And so I have to keep my fingers crossed each time I'm trying to pull something new. And it never works out the first time.
Now I thought about the features I need and I looked out for smaller projects that aim at specific functionality like plugin management eg. And there are plenty. Just compile a list of the functionality you need and start adding smaller frameworks by integrating them into your project. This also makes sense since your project should consume less RAM in the end.
Introduction to Eclipse RCP.
I've done a little work with both, but only on relatively simple applications. Both seem to have roughly equal capabilities. I personally prefer the Netbeans platform as it makes more sense to me.
You should also consider JSR-296, the Swing Application Framework. It provides a basic framework for building Swing Applications, managing application resources, state, etc, but without as much "baggage" as Netbeans and Eclipse. Netbeans IDE has a number of tools for building applications on the SAF. See https://appframework.dev.java.net/ for more info.
Without knowing more about your application, it's hard to point you at the appropriate strengths/weaknesses of the two platforms.
If you really want to avoid crossplatform maintainance then work with Swing. This buys you all platforms. RCP requires native libraries for each platform.
We have had good experiences with Swing.
I would use eclipse RCP when you really need a platform to built on top, not just "widgetery" like swing or swt. RCP is rock solid and consistent, modular and very flexible. Once you master it, you get huge benefits. Being a platform it give you the most commonly used things - preference, configurations, automatic updates, layout management, branding and things like that. You build a product, not an app. But learning curve is pretty steep in the beginning.
Swing on the other hand is not a platform, you will re-invent the wheel by writing your own things I mentioned above. But yes, swing is faster to learn and get started. I think it fits better for smaller applications with shorter life span.
Look some of the open source applications at http://www.eclipse.org/community/rcp.php before opening that RCP is only for building a stuff.