Whose line is it anyway?
It's hard to pick on such simple and straightforward code.
The one thing that stands out to me is the distance between the line where you declare the root variable, and the lines where you actually use it.
Let me quote an interesting paragraph from Code Complete:


  The code between references to a variable is a “window of vulnerability.” In the window, new code might be added, inadvertently altering the variable, or someone reading the code might forget the value the variable is supposed to contain. It’s always a good idea to localize references to variables by keeping them close together.


Indicators of this window of vulnerability are the measurements of variable "span" and "live time":


Variable "span": the number of lines between references to a variable. When a variable is referenced multiple times, the average span is computed by averaging all the individual spans. The smaller the better.
Variable "live time": the total number of statements over which a variable is "live". This is a count of lines between the first reference and the last. Again, the smaller the better.


By declaring root and scene at the top and using only at the button,
you have a large "window of vulnerability",
and high average spans and life times.
You can reduce these negative indicators by pushing these declarations down in your method to where the variables are actually used.