I wish we had access to the programming learning tools that are coming out these days back when I was in high school. All we got into was a bit of HTML, some and some MS Access-type database creation.
I've made a list of tools that would be great for teaching programming. These tools have a very visual focus, so they won't be as daunting as purely writing code. It can take a while to get to the stage of producing cool visuals with pure Java, and some libraries. These tools are often integrated development environments with a very visual interface. Most are based off Java.
I've linked each to their respective websites:
Highly visual interactive media creator. Creations can be posted to the scratch website. One college student user I aked said it was a bit too elementary.
Program objects and characters in a 3d world using a visual drag-and-drop programming interface.
Learning the basics of object orientated programming using scenarios. The default scenario is a grid which contains beavers, leaves or rocks. The beavers move foward and turn whenever they hit a rock or a wall, and eat a leaf when they are on it. This behaviour can all be modified.
Made by the same crowd as Greenfoot, BlueJ was the tool I was introduced to programming with at university.
Processing is not so much a learning language, but it is very visual. Essentially just cut-back Java with a visual output window.
Worth mentioning also is this material that teaches programming without using computers. There is a list of school age activities that can be used to teach fundamental comptuer programming concepts.