Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #32481
| From | Jeff Higgins <jeff@invalid.invalid> |
|---|---|
| Newsgroups | comp.lang.c, comp.lang.java.programmer |
| Subject | Re: Self-updating relationship |
| Date | 2015-09-02 23:38 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <ms8fbm$mbo$1@dont-email.me> (permalink) |
| References | <relationship-20150902211808@ram.dialup.fu-berlin.de> <55E766BD.3060303@verizon.net> <spaces-20150902222406@ram.dialup.fu-berlin.de> <55E77D04.6080200@verizon.net> |
Cross-posted to 2 groups.
On 09/02/2015 06:49 PM, James Kuyper wrote:
> On 09/02/2015 05:25 PM, Stefan Ram wrote:
>> James Kuyper <jameskuyper@verizon.net> writes:
>>>> final javafx.beans.property.IntegerProperty height
>>>> = new javafx.beans.property.SimpleIntegerProperty( 10 );
>>>> final javafx.beans.property.IntegerProperty number
>>>> = new javafx.beans.property.SimpleIntegerProperty( 2 );
>>>> final javafx.beans.binding.NumberBinding spaces =
>>>> height.subtract( number );
>>>> java.lang.System.out.println( spaces.getValue() );
>>>> height.set( 20 );
>>>> java.lang.System.out.println( spaces.getValue() ); }}
>>> What's the java feature that makes "spaces" above update automatically?
>>> To put it another way - if I didn't want such updates, what should I
>>> write differently?
>>
>> This depends on the details of the behavior you want instead.
>
> I read a bit about Java many years ago, and reached the conclusion that
> it had some syntactic similarities C++, but had a very different way of
> implementing objects. I played with it long enough to get something
> working, but concluded that it wasn't what I needed for any purpose I
> was trying to achieve at the time. I'm otherwise very unfamiliar with java.
>
> I get the impression from what you're saying, that the code you've shown
> results in each call to spaces.getValue() performing a fresh calculation
> of height-number, using the values of those things at the time
> getValue() is called. I'm asking about what you would have to do
> differently to have spaces set to the value of height - number at one
> particular time, and to have spaces.getValue() continue to report that
> same value, even if the values of height and number later change. It
> seems to me that this should be easier than arranging for automatic
> updates - in fact, I'd expect it to be trivial.
>
>> For one example, you can simply omit »height.set( 20 )«, and
>> »spaces« will not be updated. Or, you could just write:
>
> Well, I'm asking how to ensure that "spaces" will not be updated, even
> if "height" is, so that doesn't qualify.
>
>> public final class Main
>> { public static void main( final java.lang.String[] args )
>> { final javafx.beans.property.IntegerProperty spaces
>> = new javafx.beans.property.SimpleIntegerProperty( 8 );
>> java.lang.System.out.println( spaces.getValue() ); }}
>>
>> Which just will print »8« and not update spaces, or just
>>
>> public final class Main
>> { public static void main( final java.lang.String[] args )
>> { int const spaces = 8; java.lang.System.out.println( spaces ); }}
>
> Those both set spaces to 8, rather than height - number. If
> height-number is currently 8, that happens to be the right value, but
> isn't what I'm looking for.
>
>> or just,
>>
>> public final class Main
>> { public static void main( final java.lang.String[] args )
>> { java.lang.System.out.println( 8 ); }}
>>
>> to get the same behavior.
>
> That seems to print out 8 without even storing it anywhere, and without
> any connection to "height" or "number".
>
You may use the unbind method of the
javafx.beans.property.Property<T> interface.
<https://docs.oracle.com/javase/8/javafx/api/javafx/beans/property/Property.html>
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
public class Main
{ public static void main(String[] args)
{
final IntegerProperty height
= new SimpleIntegerProperty();
final IntegerProperty number
= new SimpleIntegerProperty();
final IntegerProperty spaces
= new SimpleIntegerProperty();
spaces.bind(height.subtract(number));
height.set(10);
number.set(2);
System.out.print(spaces.get()); // 8
spaces.unbind();
height.set(20);
System.out.print(spaces.get()); // 8
} }
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Self-updating relationship James Kuyper <jameskuyper@verizon.net> - 2015-09-02 17:14 -0400
Re: Self-updating relationship Eric Sosman <esosman@comcast-dot-net.invalid> - 2015-09-02 17:46 -0400
Re: Self-updating relationship Arne Vajhøj <arne@vajhoej.dk> - 2015-09-03 21:06 -0400
Re: Self-updating relationship e.d.programmer@gmail.com - 2015-09-04 04:46 -0700
Re: Self-updating relationship Arne Vajhøj <arne@vajhoej.dk> - 2015-09-04 19:43 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-04 11:49 -0400
Re: Self-updating relationship Arne Vajhøj <arne@vajhoej.dk> - 2015-09-04 19:45 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-04 22:10 -0400
Re: Self-updating relationship Arne Vajhøj <arne@vajhoej.dk> - 2015-09-04 22:31 -0400
Re: Self-updating relationship Arne Vajhøj <arne@vajhoej.dk> - 2015-09-04 22:38 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-04 22:51 -0400
Re: Self-updating relationship James Kuyper <jameskuyper@verizon.net> - 2015-09-02 18:49 -0400
Re: Self-updating relationship James Kuyper <jameskuyper@verizon.net> - 2015-09-02 19:28 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-02 23:52 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-03 10:32 -0400
Re: Self-updating relationship James Kuyper <jameskuyper@verizon.net> - 2015-09-03 10:53 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-03 11:31 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-03 11:35 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-03 11:49 -0400
Re: Self-updating relationship James Kuyper <jameskuyper@verizon.net> - 2015-09-03 12:16 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-03 13:03 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-03 10:55 -0400
Re: Self-updating relationship James Kuyper <jameskuyper@verizon.net> - 2015-09-03 00:06 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-02 23:38 -0400
Re: Self-updating relationship Jeff Higgins <jeff@invalid.invalid> - 2015-09-03 01:22 -0400
csiph-web