In addition to what @ABG has already said, please keep in mind the the TextBox component does not give-out the input value until it loses its focus.
In other words, in your input boxes for the constants a,b,c,d if you leave the cursor in d (for example) and you press the button to "Solve for x", in effect the d value is still 0 (not entered). So, to be sure that all the inputs are truly set, once you've set the last one, move the cursor into another TextBox, already entered.
This operation will unfocus the last TextBox, and therefore also its value will be set.
(I fought this type of "error" in the past .... so probably it could help you).
Then, I suggest you a slight modification, as below:
I have been using chat gpt to apply a solved example to these equations but it also gave different and wrong results. Could all these laws and equations be wrong!!!
You could code a generalized polynomial plotter (coefficient list, lower and upper bounds, step size) and have it zoom in a step each time the user clicks on a likely spot on the graph.
This makes the user the solver, at least numerically.
I would code one for you, but I am supposed to be asleep now.
I whipped up a polynomial editor and plotter today, but it needs a little cleanup on the editting side for the coefficient stack. (I made it general purpose, so it could accept any polynomial and represent it internally as a list of the coefficients for exponents 0,1,2,...
The coefficient entry is a bit awkward, and I could touch it up next week.