I've taught both Java and Python (as well as a lot of other languages) as first languages (and I've written books about both languages.) Either will do fine. Currently we teach Java as our first language for CS majors, and I'm working on changing to Python in the first course with Java and C in the second.
Java is a good teaching language, but it has a lot of rules. It makes you do things the 'java' way, which is sometimes verbose, but often good style. For example, here's a simple 'hello world' in Java (ask user's name and return it:
import java.util.*;
public class HelloWorld {
..public static void main(String[] args){
....Scanner input = new Scanner(System.in);
....System.out.println("What is your name?");
....String userName = input.nextLine();
....System.out.println("Hi there, " + userName + "!");
..} // end main
} // end class def
It's not that difficult, but you must do everything correctly. Java insists that every program is an object (even in this case where OOP buys you nothing) It also requires you to build the main function in a way that supports command-line arguments (even though we ignore them here). You must explicitly create an object for reading input from the command line (believe it or not, this is the easy way. It used to be much messier.) Note I changed indentation from spaces to periods because YA ignores spaces.
Now take a look at exactly the same program in Python:
userName = raw_input("What is your name?")
print "Hi, %s!" % userName
Python tends to be a lot easier to follow. For beginners, the main issue is understanding how programming works; what are variables, conditions, loops, branches, and functions. Java syntax tends to be more correct, but Python doesn't get in the way of the big idea as much.
If you only learn Python, you tend to get sloppy. If you only learn Java, you might get frustrated and think programming is harder than it really is.
Since you already know C and C++, you'll be fine with either language. I think you'll really enjoy Python, and you'll find yourself building more sophisticated programs with it more quickly than with other languages. You might find Java more frustrating at first, but once you get past the initial shock, you'll find that Java is an incredibly powerful language that can do pretty much anything. Java currently has a lot more potential for employment, but Python is really beginning to catch up, especially in web development, gaming, and bioinformatics.
As to some of the other answers:
Python has built-in support for the TK GUI system (in most installations) This is a perfectly fine easy GUI system. If you want something more substantial, you can access many other GUI libraries, including WXWidgets or GTK. These do pretty much everything Swing does (Java's most advanced GUI toolkit.)
Both languages are based on C, but in very different ways. Java still retains some C-like syntax, but that's a pretty superficial resemblance. The internals of Java and C are very different, and the way you program in Java is very different than C. Python's syntax is very much unlike C (no semicolons or braces, indentation is used to define blocks) but the thinking style of Python is actually closer to C than it is to Java. (You can use procedural or object-oriented programming, code tends to be linear, there's a lot of freedom, and c-based libraries are easily integrated into Python)
I hope this helps. Stop by my web site to see code samples or ask any other questions...