I want to write a simple event handling solution in Java with custom events. I've only find GUI based examples, using ActionListeners so far. I've included a code, that I wrote in C#.
I want to create something like this in Java:
using System;
using System.Threading;
namespace EventHandlingPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            MusicServer mServer = new MusicServer();
            Sub subber = new Sub();
            mServer.SongPlayed += subber.SubHandlerMethod;
            mServer.PlaySong();
            Console.ReadKey();
        }
    }
    // this class will notify any subscribers if the song was played
    public class MusicServer
    {
        public event EventHandler SongPlayed;
        public void PlaySong()
        {
            Console.WriteLine("The song is playing");
            Thread.Sleep(5000);
            OnSongPlayed();
        }
        protected virtual void OnSongPlayed()
        {
            if (SongPlayed != null)
                SongPlayed(this, EventArgs.Empty);
        }
    }
    // this class is class is the subscriber
    public class Sub
    {
        public void SubHandlerMethod(object sender, EventArgs e)
        {
            Console.WriteLine("Notification from: " + sender.ToString() + " the song was played");
        }
    }
} 
    