The question I have is this. Is it ok practice to pass the parameters of the button through the createbutton method to initialise it
This is fine. do people tend to access the fields using the (nameofobject).field way.
This is less fine, although very common, particularly for people who don't work in an IDE that will automaticly create accessor/mutator methods and/or properties for you.