This can be OK if the Func class acts more as a library than as an object (think of the Math class for an example of library). Without seeing the program, I can't tell though. Does the Func class have any "states" that change? Again, tough to say without seeing the program.
The Main class runs, and when a button or something is clicked, a method is called from the Func class. Thus I have made every method in Func static, as I don't require objects of it... So all the methods are called with a class reference: Func.doSomething(). Is that considered good programming practise or whatever?
I agree, this doesn't seem right at all. I'm almost sure that there is a better solution here without making these methods and fields static.
Then, the part I'm not so happy about. The Main class creates an object of a fourth class, called Output, which is responsible for playing back songs. So it creates an object of this class and when a button is clicked, calls the play method: musicObject.play(). This is fine, but then, as the song progresses, this object/class has to make alterations to some components in the Main class. So these components have to made static, surely for this purpose... It just doesn't seem right..