Posted by
Michael Doube on
URL: http://imagej.273.s1.nabble.com/setEnabled-false-in-new-GenericDialog-tp3688595p3688599.html
Hi Michael,
Thank you for your response.
> Input into the text field should be disabled, however.
Unfortunately, it is not disabled until after any one of the dialog
fields is actively changed by the user (including the TextField in
question). So if my code is good, then this seems to me to be a bug -
unable to set initial state of dialog fields to setEnabled(false).
> (2) SetEnabled in DialogItemChanged of a DialogListener will often
> fail on a Macintosh ...
> On the Mac, the easiest work around would be a delay of 100 millisec
> before a setEnabled call in a DialogListener.
So if an event triggers a DialogListener to make several changes to a
dialog, we should wait 100 ms between applying each change?
Michael
> ________________________________________________________________
>
> On 14 Apr 2010, at 02:43, Doube, Michael wrote:
>
>> Hi All,
>>
>> I have a TextField and a Checkbox in a GenericDialog. I want the
>> TextField to be setEnabled(false) , i.e. greyed out, when the
>> Checkbox is false. This I can accomplish using a DialogListener
>> when the user clicks on the Checkbox. But I want the default
>> setting to be that the Checkbox is false and the TextField is
>> correspondingly greyed out - i.e. before user input changes the
>> state of any of the Components, triggering the Listener.
>>
>> I've tried getting the Vector of numeric fields, then getting the
>> correct element using both get() and elementAt(), and setEnabled
>> (false), directly before shwoDialog() but it doesn't seem to work.
>>
>> ...
>> gd.addCheckbox("Do it", false)
>> gd.addNumericField("How many times?", 1, 0); //to be greyed out
>> initially
>> ...
>> Vector<?> numbers = gd.getNumericFields();
>> TextField num = (TextField) numbers.get(3) // or .elementAt(3);
>> num.setEnabled(false);
>> showDialog();
>>
>> Any ideas? I'm on Ubuntu 10.04, JRE 1.6 19, IJ 1.43s
>>
>> Michael