Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!news.swapon.de!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Jeff Higgins Newsgroups: comp.lang.java.programmer Subject: Re: Disabling generated buttons Date: Mon, 02 Feb 2015 20:42:53 -0500 Organization: A noiseless patient Spider Lines: 28 Message-ID: References: <874mr41ox9.fsf@Equus.decebal.nl> <87vbjkz9df.fsf@Equus.decebal.nl> <87bnlcyv2h.fsf@Equus.decebal.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Tue, 3 Feb 2015 01:46:04 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="c50a9e5d554cfaba13eda1c71e805135"; logging-data="24207"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18ek8IZ2xPmv3qF50mZKmJLHAXZ4//+psw=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.4.0 In-Reply-To: Cancel-Lock: sha1:abhN+JlOHVl0GHuWyVK4QrH7iF4= Xref: csiph.com comp.lang.java.programmer:31024 On 02/02/2015 07:35 PM, Jeff Higgins wrote: > On 02/02/2015 07:29 PM, Jeff Higgins wrote: >> On 02/02/2015 02:25 PM, Cecil Westerhof wrote: >>> Op Monday 2 Feb 2015 19:24 CET schreef FredK: >>>> >>>> The above add() saves the buttons, so now you are saving them in two >>>> places. Presumably "this" is some kind of JPanel. The buttons you >>>> added are available by calling this.getComponents() >>> >>> The buttons are on a JFrame, but there are other buttons also on >>> the JFrame and only the Colour buttons should be disabled. That is why >>> I use the array. But I look into a cleaner solution. >>> >> Another shrug. >> Component.getClientProperty(Object key) >> Component.putClientProperty(Object key, Object value) >> > But probably as expensive memory-wise as an array of references. > And certainly more expensive code-complexity-wise. > You could use the button's text as a distinguishing feature, but the way that you've shown: new JButton("" + colour); is guaranteed by the api to be implementation dependent. My implementation sets the button text to "java.awt.Color[r=0,g=0,b=255]". The complexity of a "smart" solution vs the small memory overhead of the "dumb" solution.