Hier sind einige Beispiele, die ich ohne externe Bibliotheken erstellt habe:
Eine alternative Steam-Softwarebibliothek, die automatisch die Spiele, die man besitzt, aus den lokalen Steam-Dateien ausliest, Umbenennung unterstützt (in diesem Client – es werden niemals Steam-Dateien verändert), 2 Tag-Ebenen (= sogar Tags für Tags) mit einem mächtigen Filter, einfache Filter-Textbox, div, Multiselect (was mittlerweile auch in der sonst noch recht rudimentären Steam-Bibliothek angekommen ist), merkt sich, wann es ein Spiel kennengelernt hat, wann man es zuletzt gestartet hat (über diesen Client), kann alle DLC auflisten, kann natürlich Spiele starten (oder Installationen auslösen), kann die Store-Seite eines Spiels anzeigen, etc.
Ein Datei-/Verzeichnis-Umbenennungs-Tool, in dem man das ganze gewählte Verzeichnis sieht und die Elemente darin sofort bearbeiten kann, als wäre es nur ein Text in Notepad. (Die tatsächliche Umbenennung erfolgt erst, wenn Sie es ausdrücklich sagen, für alle Einträge oder für einzelne). Hebt geänderte Zeilen hervor (wenn sie tatsächlich unterschiedlich sind), hat „unendliche“ Undos/Redos, Blockauswahl, mehrzeilige Eingabe, Blockkopieren/Ausschneiden/Einfügen, kann die Zwischenablage beschneiden (optionales Abschneiden der Dateierweiterungen), so dass Sie jetzt leicht den Inhalt eines ganzen Verzeichnisses als Text kopieren können.
Ein nett aussehendes Battleships-Spiel mit Soundeffekten und Musik in weniger als 200KB.
Was kann ich eigentlich mit Java bauen?
Es gibt einige Dinge, für die Java nicht so gut geeignet ist, aber die meisten dieser Hürden lassen sich mit etwas Aufwand überwinden (besser als die Sprache nur für solche Situationen zu ändern), z.B. durch die Verwendung von JNA/JNI (was ich bisher nie getan habe). Davon abgesehen, denke ich, dass der Himmel die Grenze ist.