Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to have a command "RedoButton" which would make a button (or whatever control is suitable) that when clicked would print the value of a certain function over and over in the same place. So for example RedoButton["do it", RandomInteger[{1, 10}] would produce a button that, when clicked, would produce a random integer of the sort required, clicking it again would produce a possibly different random integer where the old one was, and so on. I have tried Toggle, Button, and numerous other commands but can't make any of them work correctly.

share|improve this question
up vote 17 down vote accepted

Maybe you could do something like this

SetAttributes[redoButton, HoldRest]
redoButton[str_, fun_] := DynamicModule[{result = Null}, 
   Column[{Button[str, result = fun], Dynamic[result]}]]

redoButton["press", RandomInteger[20]]
share|improve this answer
That works -- thanks. – SixWingedSeraph May 2 '12 at 14:11

If you want to use the button itself to show the current value, this may help:

Button[Dynamic[x], x = RandomInteger[{1, 20}]]

Mathematica graphics

You can then use x or Dynamic[x] etc. for further computation/display.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.