Solved

Java Project

Posted on 2001-07-09
21
528 Views
Last Modified: 2013-11-23
I am looking to get more versed in Java, so I am asking for someone to help me find a good project for me to do to get more well versed with swing, or applets..... I want to get more versed with the controls, and events of the controls.

I want something that I can accomplish, and has a valid use, not just "Hello World" crap, or BS apps. I want to feel comfortable going into an interview and say, yes I am comfortable with Java.

I am a Microsoft developer with some ANSI C, and a littel Java experience. I have a Java book, and some tutorials, all I need is some ideas of projects I can do to help me get more confortable with java.

thanks
berg
0
Comment
Question by:berg1375
  • 6
  • 5
  • 4
  • +4
21 Comments
 
LVL 1

Expert Comment

by:ccaprar
ID: 6265135
Try writing a text editor application in Java, with Search capabilities, etc.

Another nice project would be to write a java application for accesing an Address Book in a database. This would involve also JDBC, and a lot of GUI stuff.

If you would like then to go for applets, just try to make the Address Book application web oriented, meaning applets and HTML on the client side ( browser ) and JSP/EJB/servlets on the server side. If you finish doing this, you will be quite versed with Java :)

Regards, Cri
0
 
LVL 4

Author Comment

by:berg1375
ID: 6265150
These are good suggestions, but I would like to keep the question open for other input.

Thanks
berg
0
 
LVL 1

Expert Comment

by:ccaprar
ID: 6265165
no problem :) hope you'll find a suited project
0
 
LVL 5

Expert Comment

by:Calron
ID: 6265195
A good project that is challenging on building a nice GUI would be an FTP-Client program. This would also include some socket stuff, etc.
0
 
LVL 15

Expert Comment

by:ozymandias
ID: 6265457
How about a POP3 client.
If you make something functional that you will actaully use there is a lot more incentive to keep at it and make it work well.

A good book is Java - Annotated Archives by Naba Barkakatipublished by Osborne ISBN 0-07-211902-0.

It is basically a book and CD containing a good set of example applications from simple web tickers to three-tiered client server applications, all full annotated with discussions about the techniques used etc.

You could pick a similar type of project to one of these and then refer to the annotaions and code if you get stuck.
0
 
LVL 4

Author Comment

by:berg1375
ID: 6265799
Very good recommendations. I will be doing this mainly at home, so I need a project that I can do frm home with no network.

Ozy, can you elaborate on this a little more?

Points will be handed out to all projects I use, not just one.
0
 
LVL 9

Expert Comment

by:doronb
ID: 6266223
Hi berq1375,


How about a game written in Java? :) It could be a strategy game (probably turn-based) or even an RPG or RTS.. of course you could develope a game server and applet clients if you so wish...


Doron
0
 
LVL 4

Author Comment

by:berg1375
ID: 6266411
You know, all these sound like such good ideas, but remember:

I have had limited exposure to Java. To this date, I have created simple applets to get used to the syntax, and most of it has been retyping source code. I did make an applet that uses JDBC a year ago, and is an adhoc query agent, but I can not remember where it is.

As far as applets and servlets and web goes, it is all greek to me. I am trying to learn Java in a business aspect, so I can make myself more marketable. I can then move onto graphics, or jsp, or network applications. As for now, I just want to get used to the functionality of Java by creating a mild usable, and even expandable program. I can only learn so much by retyping source code, so I want to actually write somthing.

thanks
berg
0
 
LVL 15

Expert Comment

by:ozymandias
ID: 6266712
You would not necessarily need a network.
I seem to remember that the POP3 example in the book has both the POP3 server and client. You could always download a free POP3 server if you wanted.

doronb's idea of a game is also a good one.
Start simple with a game where a user has to navigate round a maze. Then use those ideas to gradually build up so the user has to navigate round other enviroments like a dungeon etc.

Another way to decide what to do is to choose a particular set of classes you want to learn and let the classes dictate the kind of program you will write.

One of the first Swing apps I wrote was a program for managing my MP3 files.

First I wrote reusable file readers to read and write the MP3 tag information.

Then a type of TableModel that had vectors of MP3 tag data built from the reader classes. Then a JTable that could display the tag data and transmit changes back to the model which could write the changes back to the files etc. Then a JTree that could display artist nodes which had album child nodes which had track child nodes etc. Finally I put all the components together in a frame a bit like a windows explorer type of thing.

When I look back on it now it seems a bit poor but I remember it being very exciting at the time.
0
 
LVL 18

Expert Comment

by:bobbit31
ID: 6267127
the project i did to get a little better with java was coding a robust chat program (both client applet and server)

the functionality included:
multiple rooms
room creation
ignore list
private message
color config

i can't remember them all but it's a good project b/c you can work with applets and standalone java applications.  You also work with sockets.  It's also not that hard so it won't take you forever to do but you'll learn a lot from it (at least i did)

0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 18

Expert Comment

by:bobbit31
ID: 6267134
also, you do not need to have a network to do the above.
0
 
LVL 1

Expert Comment

by:clim1219
ID: 6267529
Hi berg,

Try to visit www.sourceforge.net. There are a lot of open source projects there.

Regards
clim1219

0
 
LVL 4

Author Comment

by:berg1375
ID: 6269070
Alright, I think that I will be doing the game, and a POP3 project.

doronb/ozy-

Can you two give me a more detailed description of the projects? I do not want source code. I would like maybe a game plan since I am new to this type of development. Some hints to packages or classes, maybe layouts, or diagram the steps(not too detailed). Enough that I will be able to develop these with minimal grey hair, but not too much that I will not have to think. I will then dispense points.
0
 
LVL 15

Accepted Solution

by:
ozymandias earned 50 total points
ID: 6269248
The best thing to do is to write a POP3 client and test it against your normal internet mail account which will probably be on a POP3-compliant mail server. All you need is the address of the server, the port used by POP3 (normally 110 I think), the username you use and your pasword.

The packages you will be using are swing (assuming you will write a swing GUI) and java.io and java.net. The comms stuff is all socket programming. (Read the Java Tutorial on Socket programming.) Basically it's something  like :

  Socket socket = new Socket(server,port);
  BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));

This establishes your connection.

Once you have created the sockets and associated readers and writers for them look at the RFC for POP3 (RFC 1939).

Basically you send POP3 protocol requests over your socket connection and listen for responses.

You send :

  USER [username]
  PASS [password]

to logon, then :

  STAT

to get a list of all messages and the total bytes, then

  LIST

to get a list of all messages with indivdual lengths, then

  RETR n

to retrieve message number n from the LIST, then

  QUIT

to end you session.

What you need to think about is how to parse the data into individiual messages. You could create a MailMessage object and store it in an array or Vector.

I would start with the socket programming and write a command line utility to test it. Something simple, like logon and retrieve and print out a list of messages. Just the headers or subjects or something.

Once you have finished that package it up as your communications class with a public method like getMessages() or something that returns a Vector of MailMessage objects. Then write the GUI to display some kind of inbox.

Once you are happy with that you need to think about an outbox and a message editor GUI to add to it. You will need to revisit your comms package to add a sendMessage(MailMessage message) method and the underlying implementation. It will be the same kind of code except a different "conversation" using SMTP (port 25, see the RFC for this also.)

I hope this is a good start for you.
Let me know if you have an more specific questions.
0
 
LVL 4

Author Comment

by:berg1375
ID: 6270144
Sounds like a good challenge and learing experience.

As soon as I get a response about the game I will award points.
0
 
LVL 9

Expert Comment

by:doronb
ID: 6271981
Hi berq,


I've thought about the game scenario, what I've come up with is this:

How about writing a framework for building adventure games.. Basically you'd start out with a game engine that could handle maps, locations, rooms, items, player directions and stuff like that.. Over the engine you'd add a UI layer, first it'd be a text UI layer like in the old style adventure games (e.g. Zork and other Infocom games) after the text UI is finished to your content you could move on to a 2D GUI layer with AWT/Swing and when that's done, how about a Java 3D interface? >:)

One of the challanges is to build a robust game engine that would not have to change as you develope different GUI/UI layers. This goal is ambitious and enhanced with being able to run the games on any java supportive platform will enable you to write an adventure once and run it on ANY java support platform with any GUI/UI possible, from text to 2D to 3D on the best machines :) and if that's not worth while (especially to companies writing adventure games) tell me what is?!

I hope this helps a bit and of course I'm willing to describe more of the game 'engine' objects and other concepts if you'd want to work on this..


Doron
0
 
LVL 9

Expert Comment

by:doronb
ID: 6272004
Hi again,


I just thought I'd direct you to an example..

http://www.avalon-rpg.com/javalon/create.html?bounty=ref+nxn.netgate.net%2Fgames2_XjavaX.html

Try the above URL and register to play an adventure game with a text UI..


Doron
0
 
LVL 9

Expert Comment

by:doronb
ID: 6272014
Hi again, :)


Oh.. and also, I've found this..

http://java.indy3d.net/

It's a game engine for graphic adventure type..


Doron
0
 
LVL 4

Author Comment

by:berg1375
ID: 6273021
That is great. Can you give me some more insight into the game engine? I will need some specifics, so I can start on this soon.

I will be posting a Q for you to claim your points.
0
 
LVL 15

Expert Comment

by:ozymandias
ID: 6273341
doronb, just had a look at the Indy3d site.

Excellent !

I remember playing Indiana Jones and The Lost City of Atlantis on the PC years ago. I think there was another one too.

Very cool....very retro...
0
 
LVL 9

Expert Comment

by:doronb
ID: 6276179
Hi berg, {finally I saw it's NOT a Q at the end of your nick but a G :)}


I'll try to give some more suggestions about the game engine soon... (currently swamped with Java work!)


Doron
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Suggested Solutions

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now