views:

117

answers:

4

I am looking for a project to use most of my java se skills (oop,java api..),i searched but i can not find good project to dive in and start.It doesnt have to be new one , projects that done before can be solution too.Any advice would be appreciated.

+2  A: 

I would suggest some form of game as those projects tend to be the most engrossing. Either a text adventure game or a 2D platform game. If time permits make it network multiplayer (which would essentially make the text adventure game more of a MUD).

cletus
Dang, you beat me to it! But I'd also consider doing a browser based game.
Carl Smotricz
@Carl: the OP said Java SE project.
cletus
A Java applet would be a browser-based Java SE project.
rob
games sound cool too,but i dont know how will do but i am thinking of doing automatic network proxy detector for windows.if you use proxy at your work program detect it and save it,if you are not using at home program detect that network too so that user doesnt have to switch proxy between different places.
Burak Dede
LOL, I was going to steal your idea from http://stackoverflow.com/questions/1698565/good-problem-domain-for-introduction-to-oo-project, but you beat me to it!
Kaleb Brasee
+1  A: 

In college, the final project for one of my courses was supposed to use as many features of Java API as possible. My project partner and I wrote an online multiplayer turn-based graphical strategy game that allowed you to log in, look up your stats, join up with people in a chat room, and start playing a game. The features it used included Swing, RMI, Servlets, JSP, e-mail, Applets, Threads, network sockets, file I/O, HttpConnection, JDBC, and the graphics & Image APIs, among others.

My friend made some really cool graphics in MS Paint (I'm not joking; they actually looked pretty good), and we loaded the sub-pictures from a single image file as-needed. Each turn you had a given number of movement/attack points, which were consumed based on the type of terrain you were trying to traverse. When you clicked on a character, the game would highlight all the squares you could move to (again, this differed based on the type of terrain in each direction, including any impassable obstacles). When you attacked another player, it would run a special algorithm to compute the damage to the other player, and his hitpoints (displayed next to the on-screen character) would be reduced accordingly. There was even a mini-map you could click on, and the maps were all randomly-generated at the beginning of the game.

Unfortunately, we never completely finished all the features (such as actually having the characters die when their health reached zero), but it was complete enough for a perfect grade.

Another cool project I heard about was a tank wars game, similar to the old Atari game. I never saw that one, but it sounded pretty cool.

One of my other final projects for a different course was a web browser--that was also a lot of fun, but the JEditorPane that I used for a basic renderer had trouble rendering a lot of things. I'm sure it has trouble with even more websites than it did back then.

rob
thanks for the advice but i am looking java se project more than web project.
Burak Dede
Applets are Java SE ;) ...although a few of the other features like JDBC and e-mail are part of the Java EE API. You can also write it as a WebStart app or a JAR-packaged application.
rob
ops sorry i didnt see applets in your answer , my mistake
Burak Dede
@rob: JDBC and mail aren't Java EE. From the mentioned only JSP/Servlet are.
BalusC
@BalusC: Thanks for the correcition--you're right; JDBC isn't EE. But I've always thought of JavaMail as a Java EE component since it's listed as a Java EE technology. You have to add it to Java SE as an optional package, but it's included with Java EE.
rob
A: 

Here's another idea: just search around Superuser.com for project ideas--for instance, someone asked about time-tracking programs today. A time-tracking program can start out extremely simple (a simple JTextField, a JList, some JLabels, and a button or two), but you can literally add hundreds of features to familiarize yourself with different parts of the API.

If there's some practical application that you could use yourself (like the automatic proxy switcher that you mentioned in a comment), you'll probably find such a project more rewarding since you'll be able to use it every day. You might also be more inclined to continue developing it as you think of new, practical features.

You might want to also print off the graphic "Java SE Platform at a Glance" and cross out various Java API features as you add them to your program. After you've crossed them all off, you might want to go back and work some more with a few of the larger ones (such as Swing, if you want to focus on GUI development).

rob
+1  A: 

I say:

  1. choose one of your hobbies; something that doesn't feel like work
  2. brainstorm about a how a piece of software can make it better
  3. write a program to do that.

Rather than worrying about which apis you use, write some software that is useful to you, I think it'll be time much better spent in the long run.

Dave Paroulek